#include "jsapi.h"
#include "jsfriendapi.h"
#include "cocos2dx.hpp"
#include "cocos2d.h"
#include "SimpleAudioEngine.h"

template<class T>
static JSBool dummy_constructor(JSContext *cx, uint32_t argc, jsval *vp) {
	TypeTest<T> t;
	T* cobj = new T();
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	assert(p);
	JSObject *_tmp = JS_NewObject(cx, p->jsclass, p->proto, p->parentProto);
	js_proxy_t *pp;
	JS_NEW_PROXY(pp, cobj, _tmp);
	JS_AddObjectRoot(cx, &pp->obj);
	JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(_tmp));

	return JS_TRUE;
}

static JSBool empty_constructor(JSContext *cx, uint32_t argc, jsval *vp) {
	return JS_FALSE;
}


JSClass  *js_cocos2dx_CCAction_class;
JSObject *js_cocos2dx_CCAction_prototype;

JSBool js_cocos2dx_CCAction_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_setOriginalTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setOriginalTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_setTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_getOriginalTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getOriginalTarget();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_getTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getTarget();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_setTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setTag(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_getTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getTag();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAction* cobj = (cocos2d::CCAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAction_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCAction* ret = cocos2d::CCAction::action();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAction_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCAction* ret = cocos2d::CCAction::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAction_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAction* cobj = new cocos2d::CCAction();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAction> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAction");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAction_class->name = "Action";
	js_cocos2dx_CCAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAction_class->finalize = js_cocos2dx_CCAction_finalize;
	js_cocos2dx_CCAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCAction_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOriginalTarget", js_cocos2dx_CCAction_setOriginalTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTarget", js_cocos2dx_CCAction_setTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOriginalTarget", js_cocos2dx_CCAction_getOriginalTarget, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCAction_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCAction_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTarget", js_cocos2dx_CCAction_getTarget, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCAction_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTag", js_cocos2dx_CCAction_setTag, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTag", js_cocos2dx_CCAction_getTag, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCAction_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("action", js_cocos2dx_CCAction_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCAction_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCAction_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCAction_class,
		js_cocos2dx_CCAction_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Action", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAction_class;
		p->proto = js_cocos2dx_CCAction_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFiniteTimeAction_class;
JSObject *js_cocos2dx_CCFiniteTimeAction_prototype;

JSBool js_cocos2dx_CCFiniteTimeAction_setDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFiniteTimeAction* cobj = (cocos2d::CCFiniteTimeAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setDuration(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFiniteTimeAction_getDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFiniteTimeAction* cobj = (cocos2d::CCFiniteTimeAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getDuration();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFiniteTimeAction_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFiniteTimeAction* cobj = (cocos2d::CCFiniteTimeAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFiniteTimeAction_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* cobj = new cocos2d::CCFiniteTimeAction();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCFiniteTimeAction> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCFiniteTimeAction");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCFiniteTimeAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFiniteTimeAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFiniteTimeAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFiniteTimeAction_class->name = "FiniteTimeAction";
	js_cocos2dx_CCFiniteTimeAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFiniteTimeAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFiniteTimeAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFiniteTimeAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFiniteTimeAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFiniteTimeAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFiniteTimeAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFiniteTimeAction_class->finalize = js_cocos2dx_CCFiniteTimeAction_finalize;
	js_cocos2dx_CCFiniteTimeAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setDuration", js_cocos2dx_CCFiniteTimeAction_setDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDuration", js_cocos2dx_CCFiniteTimeAction_getDuration, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCFiniteTimeAction_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCFiniteTimeAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCAction_prototype,
		js_cocos2dx_CCFiniteTimeAction_class,
		js_cocos2dx_CCFiniteTimeAction_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FiniteTimeAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFiniteTimeAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFiniteTimeAction_class;
		p->proto = js_cocos2dx_CCFiniteTimeAction_prototype;
		p->parentProto = js_cocos2dx_CCAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSpeed_class;
JSObject *js_cocos2dx_CCSpeed_prototype;

JSBool js_cocos2dx_CCSpeed_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_setInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setInnerAction(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_setSpeed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSpeed(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		double arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithAction(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_getInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->getInnerAction();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_getSpeed(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpeed* cobj = (cocos2d::CCSpeed *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSpeed();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpeed_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCSpeed* ret = cocos2d::CCSpeed::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpeed>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSpeed_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCSpeed* ret = cocos2d::CCSpeed::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpeed>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSpeed_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCSpeed* cobj = new cocos2d::CCSpeed();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCSpeed> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCSpeed");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCSpeed_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSpeed(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSpeed_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSpeed_class->name = "Speed";
	js_cocos2dx_CCSpeed_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSpeed_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSpeed_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSpeed_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSpeed_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSpeed_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSpeed_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSpeed_class->finalize = js_cocos2dx_CCSpeed_finalize;
	js_cocos2dx_CCSpeed_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCSpeed_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setInnerAction", js_cocos2dx_CCSpeed_setInnerAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCSpeed_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCSpeed_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCSpeed_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSpeed", js_cocos2dx_CCSpeed_setSpeed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCSpeed_initWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInnerAction", js_cocos2dx_CCSpeed_getInnerAction, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCSpeed_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSpeed", js_cocos2dx_CCSpeed_getSpeed, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCSpeed_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCSpeed_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSpeed_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCAction_prototype,
		js_cocos2dx_CCSpeed_class,
		js_cocos2dx_CCSpeed_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Speed", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSpeed> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSpeed_class;
		p->proto = js_cocos2dx_CCSpeed_prototype;
		p->parentProto = js_cocos2dx_CCAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFollow_class;
JSObject *js_cocos2dx_CCFollow_prototype;

JSBool js_cocos2dx_CCFollow_initWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		cocos2d::CCRect arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		arg1 = jsval_to_ccrect(cx, argv[1]);
		bool ret = cobj->initWithTarget(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_setBoudarySet(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setBoudarySet(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_isBoundarySet(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFollow* cobj = (cocos2d::CCFollow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isBoundarySet();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFollow_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	cocos2d::CCRect arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	arg1 = jsval_to_ccrect(cx, argv[1]);
	cocos2d::CCFollow* ret = cocos2d::CCFollow::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFollow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFollow_actionWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	cocos2d::CCRect arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	arg1 = jsval_to_ccrect(cx, argv[1]);
	cocos2d::CCFollow* ret = cocos2d::CCFollow::actionWithTarget(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFollow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFollow_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCFollow* cobj = new cocos2d::CCFollow();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCFollow> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCFollow");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCFollow_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFollow(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFollow_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFollow_class->name = "Follow";
	js_cocos2dx_CCFollow_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFollow_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFollow_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFollow_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFollow_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFollow_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFollow_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFollow_class->finalize = js_cocos2dx_CCFollow_finalize;
	js_cocos2dx_CCFollow_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithTarget", js_cocos2dx_CCFollow_initWithTarget, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCFollow_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBoudarySet", js_cocos2dx_CCFollow_setBoudarySet, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCFollow_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCFollow_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isBoundarySet", js_cocos2dx_CCFollow_isBoundarySet, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFollow_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithTarget", js_cocos2dx_CCFollow_actionWithTarget, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFollow_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCAction_prototype,
		js_cocos2dx_CCFollow_class,
		js_cocos2dx_CCFollow_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Follow", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFollow> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFollow_class;
		p->proto = js_cocos2dx_CCFollow_prototype;
		p->parentProto = js_cocos2dx_CCAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTouch_class;
JSObject *js_cocos2dx_CCTouch_prototype;

JSBool js_cocos2dx_CCTouch_getPreviousLocationInView(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPreviousLocationInView();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_getLocation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getLocation();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_getDelta(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getDelta();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_setTouchInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		int arg0;
		double arg1;
		double arg2;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		cobj->setTouchInfo(arg0, arg1, arg2);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_getID(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getID();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_getLocationInView(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getLocationInView();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_locationInView(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->locationInView();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_previousLocationInView(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->previousLocationInView();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_getPreviousLocation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTouch* cobj = (cocos2d::CCTouch *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPreviousLocation();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTouch_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTouch* cobj = new cocos2d::CCTouch();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTouch> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTouch");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTouch_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTouch(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTouch_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTouch_class->name = "Touch";
	js_cocos2dx_CCTouch_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTouch_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTouch_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTouch_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTouch_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTouch_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTouch_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTouch_class->finalize = js_cocos2dx_CCTouch_finalize;
	js_cocos2dx_CCTouch_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getPreviousLocationInView", js_cocos2dx_CCTouch_getPreviousLocationInView, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLocation", js_cocos2dx_CCTouch_getLocation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDelta", js_cocos2dx_CCTouch_getDelta, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTouchInfo", js_cocos2dx_CCTouch_setTouchInfo, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getID", js_cocos2dx_CCTouch_getID, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLocationInView", js_cocos2dx_CCTouch_getLocationInView, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("locationInView", js_cocos2dx_CCTouch_locationInView, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("previousLocationInView", js_cocos2dx_CCTouch_previousLocationInView, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPreviousLocation", js_cocos2dx_CCTouch_getPreviousLocation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTouch_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTouch_class,
		js_cocos2dx_CCTouch_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Touch", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTouch> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTouch_class;
		p->proto = js_cocos2dx_CCTouch_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSet_class;
JSObject *js_cocos2dx_CCSet_prototype;

JSBool js_cocos2dx_CCSet_count(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->count();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_addObject(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addObject(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_mutableCopy(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSet* ret = cobj->mutableCopy();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSet>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_anyObject(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCObject* ret = cobj->anyObject();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCObject>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_removeObject(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeObject(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_copy(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSet* ret = cobj->copy();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSet>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSet_containsObject(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSet* cobj = (cocos2d::CCSet *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->containsObject(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}


void js_cocos2dx_CCSet_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSet(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSet_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSet_class->name = "Set";
	js_cocos2dx_CCSet_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSet_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSet_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSet_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSet_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSet_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSet_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSet_class->finalize = js_cocos2dx_CCSet_finalize;
	js_cocos2dx_CCSet_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("count", js_cocos2dx_CCSet_count, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addObject", js_cocos2dx_CCSet_addObject, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("mutableCopy", js_cocos2dx_CCSet_mutableCopy, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("anyObject", js_cocos2dx_CCSet_anyObject, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeObject", js_cocos2dx_CCSet_removeObject, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("copy", js_cocos2dx_CCSet_copy, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("containsObject", js_cocos2dx_CCSet_containsObject, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCSet_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCSet_class,
		empty_constructor, 0,
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Set", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSet> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSet_class;
		p->proto = js_cocos2dx_CCSet_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCNode_class;
JSObject *js_cocos2dx_CCNode_prototype;

JSBool js_cocos2dx_CCNode_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCNode* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->addChild(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addChild(arg0);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getScriptHandler();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertToWorldSpaceAR(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToWorldSpaceAR(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_isIgnoreAnchorPointForPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isIgnoreAnchorPointForPosition();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setRotation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRotation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setScaleY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setScaleX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_scheduleUpdateWithPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->scheduleUpdateWithPriority(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_unregisterScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unregisterScriptHandler();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getTag();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertToWorldSpace(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToWorldSpace(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setSkewX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSkewX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setSkewY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSkewY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertTouchToNodeSpace(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTouch* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCPoint ret = cobj->convertTouchToNodeSpace(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_unscheduleUpdate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unscheduleUpdate();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setParent(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setParent(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_unscheduleAllSelectors(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unscheduleAllSelectors();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_removeAllChildrenWithCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeAllChildrenWithCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_numberOfRunningActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->numberOfRunningActions();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_removeFromParentAndCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeFromParentAndCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_stopActionByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->stopActionByTag(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_reorderChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->reorderChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getAnchorPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getAnchorPoint();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setAnchorPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setAnchorPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertToNodeSpaceAR(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToNodeSpaceAR(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_visit(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->visit();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setShaderProgram(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCGLProgram* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCGLProgram*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setShaderProgram(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getRotation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRotation();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_resumeSchedulerAndActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->resumeSchedulerAndActions();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getZOrder(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getZOrder();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getAnchorPointInPoints(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getAnchorPointInPoints();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getPositionLua(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPositionLua();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_runAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAction* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCAction* ret = cobj->runAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_transform(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->transform();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setVertexZ(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setVertexZ(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setScheduler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCScheduler* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCScheduler*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setScheduler(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_stopAllActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stopAllActions();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getSkewX(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSkewX();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getSkewY(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSkewY();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_ignoreAnchorPointForPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->ignoreAnchorPointForPosition(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getActionByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cocos2d::CCAction* ret = cobj->getActionByTag(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getScheduler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCScheduler* ret = cobj->getScheduler();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScheduler>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getOrderOfArrival(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getOrderOfArrival();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setContentSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setContentSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setActionManager(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionManager* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionManager*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setActionManager(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCNode* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		float* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR float*;
		float* arg1;
		#pragma warning NO CONVERSION TO NATIVE FOR float*;
		cobj->getPosition(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPosition();
		jsval jsret; jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_isRunning(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isRunning();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getParent(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getParent();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getPositionY(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getPositionY();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getPositionX(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getPositionX();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_removeChildByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		int arg0;
		JSBool arg1;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChildByTag(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setVisible(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setVisible(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_pauseSchedulerAndActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->pauseSchedulerAndActions();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getVertexZ(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getVertexZ();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode__setZOrder(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->_setZOrder(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScale(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getChildByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cocos2d::CCNode* ret = cobj->getChildByTag(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setOrderOfArrival(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setOrderOfArrival(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getScaleY(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getScaleY();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getScaleX(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getScaleX();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_cleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->cleanup();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getContentSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getContentSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setGrid(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCGridBase* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCGridBase*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setGrid(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_boundingBox(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCRect ret = cobj->boundingBox();
		jsval jsret;
		jsret = ccrect_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_transformAncestors(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->transformAncestors();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setUserObject(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setUserObject(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_registerScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->registerScriptHandler(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertTouchToNodeSpaceAR(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTouch* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCPoint ret = cobj->convertTouchToNodeSpaceAR(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_isVisible(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isVisible();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_sortAllChildren(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->sortAllChildren();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_convertToNodeSpace(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToNodeSpace(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getScale();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_setTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setTag(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_scheduleUpdate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->scheduleUpdate();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_stopAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAction* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->stopAction(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_getActionManager(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCNode* cobj = (cocos2d::CCNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionManager* ret = cobj->getActionManager();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionManager>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCNode_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCNode* ret = cocos2d::CCNode::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCNode_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCNode* ret = cocos2d::CCNode::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCNode_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCNode* cobj = new cocos2d::CCNode();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCNode> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCNode");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCNode_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCNode(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCNode_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCNode_class->name = "Node";
	js_cocos2dx_CCNode_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCNode_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCNode_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCNode_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCNode_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCNode_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCNode_class->convert = JS_ConvertStub;
	js_cocos2dx_CCNode_class->finalize = js_cocos2dx_CCNode_finalize;
	js_cocos2dx_CCNode_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addChild", js_cocos2dx_CCNode_addChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScriptHandler", js_cocos2dx_CCNode_getScriptHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToWorldSpaceAR", js_cocos2dx_CCNode_convertToWorldSpaceAR, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isIgnoreAnchorPointForPosition", js_cocos2dx_CCNode_isIgnoreAnchorPointForPosition, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRotation", js_cocos2dx_CCNode_setRotation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleY", js_cocos2dx_CCNode_setScaleY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleX", js_cocos2dx_CCNode_setScaleX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("scheduleUpdateWithPriority", js_cocos2dx_CCNode_scheduleUpdateWithPriority, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unregisterScriptHandler", js_cocos2dx_CCNode_unregisterScriptHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTag", js_cocos2dx_CCNode_getTag, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCNode_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToWorldSpace", js_cocos2dx_CCNode_convertToWorldSpace, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSkewX", js_cocos2dx_CCNode_setSkewX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSkewY", js_cocos2dx_CCNode_setSkewY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertTouchToNodeSpace", js_cocos2dx_CCNode_convertTouchToNodeSpace, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleUpdate", js_cocos2dx_CCNode_unscheduleUpdate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setParent", js_cocos2dx_CCNode_setParent, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleAllSelectors", js_cocos2dx_CCNode_unscheduleAllSelectors, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllChildrenWithCleanup", js_cocos2dx_CCNode_removeAllChildrenWithCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("numberOfRunningActions", js_cocos2dx_CCNode_numberOfRunningActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeFromParentAndCleanup", js_cocos2dx_CCNode_removeFromParentAndCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopActionByTag", js_cocos2dx_CCNode_stopActionByTag, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reorderChild", js_cocos2dx_CCNode_reorderChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAnchorPoint", js_cocos2dx_CCNode_getAnchorPoint, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAnchorPoint", js_cocos2dx_CCNode_setAnchorPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToNodeSpaceAR", js_cocos2dx_CCNode_convertToNodeSpaceAR, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("visit", js_cocos2dx_CCNode_visit, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setShaderProgram", js_cocos2dx_CCNode_setShaderProgram, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRotation", js_cocos2dx_CCNode_getRotation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeSchedulerAndActions", js_cocos2dx_CCNode_resumeSchedulerAndActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getZOrder", js_cocos2dx_CCNode_getZOrder, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAnchorPointInPoints", js_cocos2dx_CCNode_getAnchorPointInPoints, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPositionLua", js_cocos2dx_CCNode_getPositionLua, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("runAction", js_cocos2dx_CCNode_runAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transform", js_cocos2dx_CCNode_transform, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVertexZ", js_cocos2dx_CCNode_setVertexZ, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScheduler", js_cocos2dx_CCNode_setScheduler, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopAllActions", js_cocos2dx_CCNode_stopAllActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSkewX", js_cocos2dx_CCNode_getSkewX, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSkewY", js_cocos2dx_CCNode_getSkewY, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ignoreAnchorPointForPosition", js_cocos2dx_CCNode_ignoreAnchorPointForPosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getActionByTag", js_cocos2dx_CCNode_getActionByTag, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScheduler", js_cocos2dx_CCNode_getScheduler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOrderOfArrival", js_cocos2dx_CCNode_getOrderOfArrival, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setContentSize", js_cocos2dx_CCNode_setContentSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setActionManager", js_cocos2dx_CCNode_setActionManager, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPosition", js_cocos2dx_CCNode_getPosition, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isRunning", js_cocos2dx_CCNode_isRunning, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getParent", js_cocos2dx_CCNode_getParent, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPositionY", js_cocos2dx_CCNode_getPositionY, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPositionX", js_cocos2dx_CCNode_getPositionX, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChildByTag", js_cocos2dx_CCNode_removeChildByTag, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVisible", js_cocos2dx_CCNode_setVisible, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseSchedulerAndActions", js_cocos2dx_CCNode_pauseSchedulerAndActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getVertexZ", js_cocos2dx_CCNode_getVertexZ, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("_setZOrder", js_cocos2dx_CCNode__setZOrder, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScale", js_cocos2dx_CCNode_setScale, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getChildByTag", js_cocos2dx_CCNode_getChildByTag, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOrderOfArrival", js_cocos2dx_CCNode_setOrderOfArrival, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScaleY", js_cocos2dx_CCNode_getScaleY, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScaleX", js_cocos2dx_CCNode_getScaleX, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("cleanup", js_cocos2dx_CCNode_cleanup, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getContentSize", js_cocos2dx_CCNode_getContentSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setGrid", js_cocos2dx_CCNode_setGrid, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getBoundingBox", js_cocos2dx_CCNode_boundingBox, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCNode_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transformAncestors", js_cocos2dx_CCNode_transformAncestors, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setUserObject", js_cocos2dx_CCNode_setUserObject, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("registerScriptHandler", js_cocos2dx_CCNode_registerScriptHandler, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertTouchToNodeSpaceAR", js_cocos2dx_CCNode_convertTouchToNodeSpaceAR, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isVisible", js_cocos2dx_CCNode_isVisible, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("sortAllChildren", js_cocos2dx_CCNode_sortAllChildren, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToNodeSpace", js_cocos2dx_CCNode_convertToNodeSpace, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScale", js_cocos2dx_CCNode_getScale, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTag", js_cocos2dx_CCNode_setTag, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("scheduleUpdate", js_cocos2dx_CCNode_scheduleUpdate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopAction", js_cocos2dx_CCNode_stopAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getActionManager", js_cocos2dx_CCNode_getActionManager, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCNode_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCNode_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCNode_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCNode_class,
		js_cocos2dx_CCNode_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Node", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCNode> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCNode_class;
		p->proto = js_cocos2dx_CCNode_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTexture2D_class;
JSObject *js_cocos2dx_CCTexture2D_prototype;

JSBool js_cocos2dx_CCTexture2D_getShaderProgram(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCGLProgram* ret = cobj->getShaderProgram();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGLProgram>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getMaxT(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getMaxT();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_stringForFormat(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->stringForFormat();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_initWithImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCImage* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCImage*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithImage(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setShaderProgram(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCGLProgram* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCGLProgram*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setShaderProgram(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getMaxS(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getMaxS();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_releaseData(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		void* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR void*;
		cobj->releaseData(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_hasPremultipliedAlpha(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->hasPremultipliedAlpha();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getPixelsHigh(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getPixelsHigh();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setTexParameters(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		ccTexParams* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR ccTexParams*;
		cobj->setTexParameters(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_bitsPerPixelForFormat(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCTexture2D* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2DPixelFormat arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		unsigned int ret = cobj->bitsPerPixelForFormat(arg0);
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		unsigned int ret = cobj->bitsPerPixelForFormat();
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_initWithData(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		const void* arg0;
		cocos2d::CCTexture2DPixelFormat arg1;
		unsigned int arg2;
		unsigned int arg3;
		cocos2d::CCSize arg4;
		#pragma warning NO CONVERSION TO NATIVE FOR const void*;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		arg4 = jsval_to_ccsize(cx, argv[4]);
		bool ret = cobj->initWithData(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 5);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getName(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getName();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_initWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCTexture2D* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithString(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 6) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSize arg1;
		arg1 = jsval_to_ccsize(cx, argv[1]);
		cocos2d::CCTextAlignment arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCVerticalTextAlignment arg3;
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		const char* arg4;
		std::string arg4_tmp = jsval_to_std_string(cx, argv[4]); arg4 = arg4_tmp.c_str();
		double arg5;
		JS_ValueToNumber(cx, argv[5], &arg5);
		bool ret = cobj->initWithString(arg0, arg1, arg2, arg3, arg4, arg5);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setMaxT(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setMaxT(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_drawInRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->drawInRect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getContentSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getContentSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setAliasTexParameters(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->setAliasTexParameters();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setAntiAliasTexParameters(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->setAntiAliasTexParameters();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_generateMipmap(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->generateMipmap();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getPixelFormat(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2DPixelFormat ret = cobj->getPixelFormat();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_keepData(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		void* arg0;
		unsigned int arg1;
		#pragma warning NO CONVERSION TO NATIVE FOR void*;
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		void* ret = cobj->keepData(arg0, arg1);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR void*;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getContentSizeInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getContentSizeInPixels();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_getPixelsWide(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getPixelsWide();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_drawAtPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->drawAtPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_hasMipmaps(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->hasMipmaps();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_initWithPVRFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithPVRFile(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setMaxS(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTexture2D* cobj = (cocos2d::CCTexture2D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setMaxS(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTexture2D_setDefaultAlphaPixelFormat(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTexture2DPixelFormat arg0;
	assert(argc >= 1);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	cocos2d::CCTexture2D::setDefaultAlphaPixelFormat(arg0);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTexture2D_defaultAlphaPixelFormat(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCTexture2DPixelFormat ret = cocos2d::CCTexture2D::defaultAlphaPixelFormat();
	jsval jsret;
	jsret = INT_TO_JSVAL(ret);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTexture2D_PVRImagesHavePremultipliedAlpha(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSBool arg0;
	assert(argc >= 1);

	JS_ValueToBoolean(cx, argv[0], &arg0);
	cocos2d::CCTexture2D::PVRImagesHavePremultipliedAlpha(arg0);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTexture2D_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTexture2D* cobj = new cocos2d::CCTexture2D();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTexture2D> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTexture2D");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTexture2D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTexture2D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTexture2D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTexture2D_class->name = "Texture2D";
	js_cocos2dx_CCTexture2D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTexture2D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTexture2D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTexture2D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTexture2D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTexture2D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTexture2D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTexture2D_class->finalize = js_cocos2dx_CCTexture2D_finalize;
	js_cocos2dx_CCTexture2D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getShaderProgram", js_cocos2dx_CCTexture2D_getShaderProgram, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMaxT", js_cocos2dx_CCTexture2D_getMaxT, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stringForFormat", js_cocos2dx_CCTexture2D_stringForFormat, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithImage", js_cocos2dx_CCTexture2D_initWithImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setShaderProgram", js_cocos2dx_CCTexture2D_setShaderProgram, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMaxS", js_cocos2dx_CCTexture2D_getMaxS, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("releaseData", js_cocos2dx_CCTexture2D_releaseData, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("hasPremultipliedAlpha", js_cocos2dx_CCTexture2D_hasPremultipliedAlpha, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPixelsHigh", js_cocos2dx_CCTexture2D_getPixelsHigh, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexParameters", js_cocos2dx_CCTexture2D_setTexParameters, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("bitsPerPixelForFormat", js_cocos2dx_CCTexture2D_bitsPerPixelForFormat, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithData", js_cocos2dx_CCTexture2D_initWithData, 5, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getName", js_cocos2dx_CCTexture2D_getName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithString", js_cocos2dx_CCTexture2D_initWithString, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMaxT", js_cocos2dx_CCTexture2D_setMaxT, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("drawInRect", js_cocos2dx_CCTexture2D_drawInRect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getContentSize", js_cocos2dx_CCTexture2D_getContentSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAliasTexParameters", js_cocos2dx_CCTexture2D_setAliasTexParameters, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAntiAliasTexParameters", js_cocos2dx_CCTexture2D_setAntiAliasTexParameters, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("generateMipmap", js_cocos2dx_CCTexture2D_generateMipmap, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPixelFormat", js_cocos2dx_CCTexture2D_getPixelFormat, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("keepData", js_cocos2dx_CCTexture2D_keepData, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getContentSizeInPixels", js_cocos2dx_CCTexture2D_getContentSizeInPixels, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPixelsWide", js_cocos2dx_CCTexture2D_getPixelsWide, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("drawAtPoint", js_cocos2dx_CCTexture2D_drawAtPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("hasMipmaps", js_cocos2dx_CCTexture2D_hasMipmaps, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithPVRFile", js_cocos2dx_CCTexture2D_initWithPVRFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMaxS", js_cocos2dx_CCTexture2D_setMaxS, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("setDefaultAlphaPixelFormat", js_cocos2dx_CCTexture2D_setDefaultAlphaPixelFormat, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("defaultAlphaPixelFormat", js_cocos2dx_CCTexture2D_defaultAlphaPixelFormat, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("PVRImagesHavePremultipliedAlpha", js_cocos2dx_CCTexture2D_PVRImagesHavePremultipliedAlpha, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTexture2D_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTexture2D_class,
		js_cocos2dx_CCTexture2D_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Texture2D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTexture2D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTexture2D_class;
		p->proto = js_cocos2dx_CCTexture2D_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSpriteFrame_class;
JSObject *js_cocos2dx_CCSpriteFrame_prototype;

JSBool js_cocos2dx_CCSpriteFrame_setRotated(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setRotated(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getOffset(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getOffset();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setRectInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->setRectInPixels(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2D* ret = cobj->getTexture();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCRect ret = cobj->getRect();
		jsval jsret;
		jsret = ccrect_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setOffsetInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setOffsetInPixels(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getRectInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCRect ret = cobj->getRectInPixels();
		jsval jsret;
		jsret = ccrect_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setOriginalSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setOriginalSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getOriginalSizeInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getOriginalSizeInPixels();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setOriginalSizeInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setOriginalSizeInPixels(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setOffset(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setOffset(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_initWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSpriteFrame* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		bool ret = cobj->initWithTexture(arg0, arg1, arg2, arg3, arg4);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		bool ret = cobj->initWithTexture(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_isRotated(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isRotated();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_initWithTextureFilename(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSpriteFrame* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		bool ret = cobj->initWithTextureFilename(arg0, arg1, arg2, arg3, arg4);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		bool ret = cobj->initWithTextureFilename(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_setRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->setRect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getOffsetInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getOffsetInPixels();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_getOriginalSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrame* cobj = (cocos2d::CCSpriteFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getOriginalSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_frameWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::frameWithTexture(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::frameWithTexture(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::create(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_createWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::createWithTexture(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::createWithTexture(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrame_frameWithTextureFilename(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cocos2d::CCSize arg4;
		arg4 = jsval_to_ccsize(cx, argv[4]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::frameWithTextureFilename(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSpriteFrame* ret = cocos2d::CCSpriteFrame::frameWithTextureFilename(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}


void js_cocos2dx_CCSpriteFrame_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSpriteFrame(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSpriteFrame_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSpriteFrame_class->name = "SpriteFrame";
	js_cocos2dx_CCSpriteFrame_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrame_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrame_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrame_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSpriteFrame_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSpriteFrame_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSpriteFrame_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSpriteFrame_class->finalize = js_cocos2dx_CCSpriteFrame_finalize;
	js_cocos2dx_CCSpriteFrame_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setRotated", js_cocos2dx_CCSpriteFrame_setRotated, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexture", js_cocos2dx_CCSpriteFrame_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOffset", js_cocos2dx_CCSpriteFrame_getOffset, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRectInPixels", js_cocos2dx_CCSpriteFrame_setRectInPixels, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTexture", js_cocos2dx_CCSpriteFrame_getTexture, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRect", js_cocos2dx_CCSpriteFrame_getRect, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOffsetInPixels", js_cocos2dx_CCSpriteFrame_setOffsetInPixels, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRectInPixels", js_cocos2dx_CCSpriteFrame_getRectInPixels, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOriginalSize", js_cocos2dx_CCSpriteFrame_setOriginalSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOriginalSizeInPixels", js_cocos2dx_CCSpriteFrame_getOriginalSizeInPixels, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOriginalSizeInPixels", js_cocos2dx_CCSpriteFrame_setOriginalSizeInPixels, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOffset", js_cocos2dx_CCSpriteFrame_setOffset, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTexture", js_cocos2dx_CCSpriteFrame_initWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isRotated", js_cocos2dx_CCSpriteFrame_isRotated, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTextureFilename", js_cocos2dx_CCSpriteFrame_initWithTextureFilename, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRect", js_cocos2dx_CCSpriteFrame_setRect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOffsetInPixels", js_cocos2dx_CCSpriteFrame_getOffsetInPixels, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOriginalSize", js_cocos2dx_CCSpriteFrame_getOriginalSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("frameWithTexture", js_cocos2dx_CCSpriteFrame_frameWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCSpriteFrame_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTexture", js_cocos2dx_CCSpriteFrame_createWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("frameWithTextureFilename", js_cocos2dx_CCSpriteFrame_frameWithTextureFilename, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSpriteFrame_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCSpriteFrame_class,
		dummy_constructor<cocos2d::CCSpriteFrame>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "SpriteFrame", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSpriteFrame> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSpriteFrame_class;
		p->proto = js_cocos2dx_CCSpriteFrame_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCAnimationFrame_class;
JSObject *js_cocos2dx_CCAnimationFrame_prototype;

JSBool js_cocos2dx_CCAnimationFrame_setSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setSpriteFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_getUserInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getUserInfo();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_setDelayUnits(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setDelayUnits(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_getSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSpriteFrame* ret = cobj->getSpriteFrame();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_getDelayUnits(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getDelayUnits();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_setUserInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setUserInfo(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_initWithSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationFrame* cobj = (cocos2d::CCAnimationFrame *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCSpriteFrame* arg0;
		double arg1;
		cocos2d::CCDictionary* arg2;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg2 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg2)
		} while (0);
		bool ret = cobj->initWithSpriteFrame(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationFrame_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAnimationFrame* cobj = new cocos2d::CCAnimationFrame();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAnimationFrame> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAnimationFrame");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAnimationFrame_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAnimationFrame(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAnimationFrame_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAnimationFrame_class->name = "AnimationFrame";
	js_cocos2dx_CCAnimationFrame_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationFrame_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationFrame_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationFrame_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAnimationFrame_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAnimationFrame_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAnimationFrame_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAnimationFrame_class->finalize = js_cocos2dx_CCAnimationFrame_finalize;
	js_cocos2dx_CCAnimationFrame_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setSpriteFrame", js_cocos2dx_CCAnimationFrame_setSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getUserInfo", js_cocos2dx_CCAnimationFrame_getUserInfo, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDelayUnits", js_cocos2dx_CCAnimationFrame_setDelayUnits, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSpriteFrame", js_cocos2dx_CCAnimationFrame_getSpriteFrame, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDelayUnits", js_cocos2dx_CCAnimationFrame_getDelayUnits, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setUserInfo", js_cocos2dx_CCAnimationFrame_setUserInfo, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSpriteFrame", js_cocos2dx_CCAnimationFrame_initWithSpriteFrame, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCAnimationFrame_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCAnimationFrame_class,
		js_cocos2dx_CCAnimationFrame_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "AnimationFrame", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAnimationFrame> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAnimationFrame_class;
		p->proto = js_cocos2dx_CCAnimationFrame_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCAnimation_class;
JSObject *js_cocos2dx_CCAnimation_prototype;

JSBool js_cocos2dx_CCAnimation_addSpriteFrameWithFileName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->addSpriteFrameWithFileName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_setFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setFrames(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getFrames();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_addSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addSpriteFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_setDelayPerUnit(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setDelayPerUnit(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_initWithAnimationFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCArray* arg0;
		double arg1;
		unsigned int arg2;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		bool ret = cobj->initWithAnimationFrames(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_initWithSpriteFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCArray* arg0;
		double arg1;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithSpriteFrames(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getLoops(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getLoops();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_setLoops(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setLoops(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_setRestoreOriginalFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setRestoreOriginalFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getTotalDelayUnits(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getTotalDelayUnits();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getDelayPerUnit(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getDelayPerUnit();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getRestoreOriginalFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->getRestoreOriginalFrame();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_getDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getDuration();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_addSpriteFrameWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimation* cobj = (cocos2d::CCAnimation *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		cocos2d::CCRect arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cobj->addSpriteFrameWithTexture(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimation_animationWithSpriteFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCArray* arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccarray(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCAnimation* ret = cocos2d::CCAnimation::animationWithSpriteFrames(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimation>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimation_animation(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCAnimation* ret = cocos2d::CCAnimation::animation();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimation>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimation_animationWithAnimationFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCArray* arg0;
	double arg1;
	unsigned int arg2;
	assert(argc >= 3);

	arg0 = jsval_to_ccarray(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToECMAUint32(cx, argv[2], &arg2);
	cocos2d::CCAnimation* ret = cocos2d::CCAnimation::animationWithAnimationFrames(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimation>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimation_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAnimation* cobj = new cocos2d::CCAnimation();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAnimation> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAnimation");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAnimation_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAnimation(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAnimation_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAnimation_class->name = "Animation";
	js_cocos2dx_CCAnimation_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimation_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimation_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimation_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAnimation_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAnimation_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAnimation_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAnimation_class->finalize = js_cocos2dx_CCAnimation_finalize;
	js_cocos2dx_CCAnimation_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addSpriteFrameWithFilename", js_cocos2dx_CCAnimation_addSpriteFrameWithFileName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFrames", js_cocos2dx_CCAnimation_setFrames, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getFrames", js_cocos2dx_CCAnimation_getFrames, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addSpriteFrame", js_cocos2dx_CCAnimation_addSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDelayPerUnit", js_cocos2dx_CCAnimation_setDelayPerUnit, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAnimationFrames", js_cocos2dx_CCAnimation_initWithAnimationFrames, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCAnimation_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSpriteFrames", js_cocos2dx_CCAnimation_initWithSpriteFrames, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLoops", js_cocos2dx_CCAnimation_getLoops, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLoops", js_cocos2dx_CCAnimation_setLoops, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRestoreOriginalFrame", js_cocos2dx_CCAnimation_setRestoreOriginalFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTotalDelayUnits", js_cocos2dx_CCAnimation_getTotalDelayUnits, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDelayPerUnit", js_cocos2dx_CCAnimation_getDelayPerUnit, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRestoreOriginalFrame", js_cocos2dx_CCAnimation_getRestoreOriginalFrame, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDuration", js_cocos2dx_CCAnimation_getDuration, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addSpriteFrameWithTexture", js_cocos2dx_CCAnimation_addSpriteFrameWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("animationWithSpriteFrames", js_cocos2dx_CCAnimation_animationWithSpriteFrames, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("animation", js_cocos2dx_CCAnimation_animation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("animationWithAnimationFrames", js_cocos2dx_CCAnimation_animationWithAnimationFrames, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCAnimation_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCAnimation_class,
		js_cocos2dx_CCAnimation_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Animation", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAnimation> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAnimation_class;
		p->proto = js_cocos2dx_CCAnimation_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionInterval_class;
JSObject *js_cocos2dx_CCActionInterval_prototype;

JSBool js_cocos2dx_CCActionInterval_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		bool ret = cobj->initWithDuration(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_setAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAmplitudeRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_getAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAmplitudeRate();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_getElapsed(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getElapsed();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInterval* cobj = (cocos2d::CCActionInterval *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInterval_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCActionInterval* ret = cocos2d::CCActionInterval::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCActionInterval_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCActionInterval* ret = cocos2d::CCActionInterval::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCActionInterval_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionInterval(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionInterval_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionInterval_class->name = "ActionInterval";
	js_cocos2dx_CCActionInterval_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInterval_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInterval_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInterval_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionInterval_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionInterval_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionInterval_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionInterval_class->finalize = js_cocos2dx_CCActionInterval_finalize;
	js_cocos2dx_CCActionInterval_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCActionInterval_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCActionInterval_initWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAmplitudeRate", js_cocos2dx_CCActionInterval_setAmplitudeRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAmplitudeRate", js_cocos2dx_CCActionInterval_getAmplitudeRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCActionInterval_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getElapsed", js_cocos2dx_CCActionInterval_getElapsed, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCActionInterval_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCActionInterval_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCActionInterval_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCActionInterval_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCActionInterval_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFiniteTimeAction_prototype,
		js_cocos2dx_CCActionInterval_class,
		dummy_constructor<cocos2d::CCActionInterval>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionInterval", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionInterval> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionInterval_class;
		p->proto = js_cocos2dx_CCActionInterval_prototype;
		p->parentProto = js_cocos2dx_CCFiniteTimeAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSequence_class;
JSObject *js_cocos2dx_CCSequence_prototype;

JSBool js_cocos2dx_CCSequence_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSequence* cobj = (cocos2d::CCSequence *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSequence_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSequence* cobj = (cocos2d::CCSequence *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSequence_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSequence* cobj = (cocos2d::CCSequence *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSequence_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSequence* cobj = (cocos2d::CCSequence *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSequence_initWithTwoActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSequence* cobj = (cocos2d::CCSequence *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCFiniteTimeAction* arg0;
		cocos2d::CCFiniteTimeAction* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithTwoActions(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSequence_actionWithArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCArray* arg0;
	assert(argc >= 1);

	arg0 = jsval_to_ccarray(cx, argv[0]);
	cocos2d::CCFiniteTimeAction* ret = cocos2d::CCSequence::actionWithArray(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSequence_actionOneTwo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCFiniteTimeAction* arg0;
	cocos2d::CCFiniteTimeAction* arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCSequence* ret = cocos2d::CCSequence::actionOneTwo(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSequence>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCSequence_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSequence(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSequence_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSequence_class->name = "Sequence";
	js_cocos2dx_CCSequence_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSequence_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSequence_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSequence_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSequence_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSequence_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSequence_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSequence_class->finalize = js_cocos2dx_CCSequence_finalize;
	js_cocos2dx_CCSequence_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCSequence_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCSequence_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCSequence_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCSequence_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTwoActions", js_cocos2dx_CCSequence_initWithTwoActions, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("actionWithArray", js_cocos2dx_CCSequence_actionWithArray, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionOneTwo", js_cocos2dx_CCSequence_actionOneTwo, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSequence_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCSequence_class,
		dummy_constructor<cocos2d::CCSequence>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Sequence", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSequence> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSequence_class;
		p->proto = js_cocos2dx_CCSequence_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCRepeat_class;
JSObject *js_cocos2dx_CCRepeat_prototype;

JSBool js_cocos2dx_CCRepeat_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_setInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCFiniteTimeAction* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setInnerAction(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCFiniteTimeAction* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithAction(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_getInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->getInnerAction();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeat* cobj = (cocos2d::CCRepeat *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeat_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCFiniteTimeAction* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCRepeat* ret = cocos2d::CCRepeat::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRepeat>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCRepeat_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCFiniteTimeAction* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCRepeat* ret = cocos2d::CCRepeat::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRepeat>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCRepeat_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCRepeat(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCRepeat_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCRepeat_class->name = "Repeat";
	js_cocos2dx_CCRepeat_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeat_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeat_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeat_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCRepeat_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCRepeat_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCRepeat_class->convert = JS_ConvertStub;
	js_cocos2dx_CCRepeat_class->finalize = js_cocos2dx_CCRepeat_finalize;
	js_cocos2dx_CCRepeat_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCRepeat_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setInnerAction", js_cocos2dx_CCRepeat_setInnerAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCRepeat_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCRepeat_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCRepeat_initWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInnerAction", js_cocos2dx_CCRepeat_getInnerAction, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCRepeat_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCRepeat_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCRepeat_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCRepeat_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCRepeat_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCRepeat_class,
		dummy_constructor<cocos2d::CCRepeat>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Repeat", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCRepeat> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCRepeat_class;
		p->proto = js_cocos2dx_CCRepeat_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCRepeatForever_class;
JSObject *js_cocos2dx_CCRepeatForever_prototype;

JSBool js_cocos2dx_CCRepeatForever_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_setInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setInnerAction(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithAction(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_getInnerAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->getInnerAction();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRepeatForever* cobj = (cocos2d::CCRepeatForever *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRepeatForever_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCRepeatForever* ret = cocos2d::CCRepeatForever::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRepeatForever>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCRepeatForever_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCRepeatForever* ret = cocos2d::CCRepeatForever::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRepeatForever>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCRepeatForever_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCRepeatForever* cobj = new cocos2d::CCRepeatForever();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCRepeatForever> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCRepeatForever");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCRepeatForever_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCRepeatForever(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCRepeatForever_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCRepeatForever_class->name = "RepeatForever";
	js_cocos2dx_CCRepeatForever_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeatForever_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeatForever_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCRepeatForever_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCRepeatForever_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCRepeatForever_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCRepeatForever_class->convert = JS_ConvertStub;
	js_cocos2dx_CCRepeatForever_class->finalize = js_cocos2dx_CCRepeatForever_finalize;
	js_cocos2dx_CCRepeatForever_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCRepeatForever_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setInnerAction", js_cocos2dx_CCRepeatForever_setInnerAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCRepeatForever_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCRepeatForever_initWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInnerAction", js_cocos2dx_CCRepeatForever_getInnerAction, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCRepeatForever_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCRepeatForever_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCRepeatForever_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCRepeatForever_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCRepeatForever_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCRepeatForever_class,
		js_cocos2dx_CCRepeatForever_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "RepeatForever", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCRepeatForever> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCRepeatForever_class;
		p->proto = js_cocos2dx_CCRepeatForever_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSpawn_class;
JSObject *js_cocos2dx_CCSpawn_prototype;

JSBool js_cocos2dx_CCSpawn_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpawn* cobj = (cocos2d::CCSpawn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpawn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpawn* cobj = (cocos2d::CCSpawn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpawn_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpawn* cobj = (cocos2d::CCSpawn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpawn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpawn* cobj = (cocos2d::CCSpawn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpawn_initWithTwoActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpawn* cobj = (cocos2d::CCSpawn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCFiniteTimeAction* arg0;
		cocos2d::CCFiniteTimeAction* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithTwoActions(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpawn_actionWithArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCArray* arg0;
	assert(argc >= 1);

	arg0 = jsval_to_ccarray(cx, argv[0]);
	cocos2d::CCFiniteTimeAction* ret = cocos2d::CCSpawn::actionWithArray(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSpawn_actionOneTwo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCFiniteTimeAction* arg0;
	cocos2d::CCFiniteTimeAction* arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCSpawn* ret = cocos2d::CCSpawn::actionOneTwo(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpawn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCSpawn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSpawn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSpawn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSpawn_class->name = "Spawn";
	js_cocos2dx_CCSpawn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSpawn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSpawn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSpawn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSpawn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSpawn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSpawn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSpawn_class->finalize = js_cocos2dx_CCSpawn_finalize;
	js_cocos2dx_CCSpawn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCSpawn_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCSpawn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCSpawn_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCSpawn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTwoActions", js_cocos2dx_CCSpawn_initWithTwoActions, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("actionWithArray", js_cocos2dx_CCSpawn_actionWithArray, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionOneTwo", js_cocos2dx_CCSpawn_actionOneTwo, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSpawn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCSpawn_class,
		dummy_constructor<cocos2d::CCSpawn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Spawn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSpawn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSpawn_class;
		p->proto = js_cocos2dx_CCSpawn_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCRotateTo_class;
JSObject *js_cocos2dx_CCRotateTo_prototype;

JSBool js_cocos2dx_CCRotateTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateTo* cobj = (cocos2d::CCRotateTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateTo* cobj = (cocos2d::CCRotateTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		double arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateTo* cobj = (cocos2d::CCRotateTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCRotateTo* ret = cocos2d::CCRotateTo::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRotateTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCRotateTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCRotateTo* ret = cocos2d::CCRotateTo::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRotateTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCRotateTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCRotateTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCRotateTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCRotateTo_class->name = "RotateTo";
	js_cocos2dx_CCRotateTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCRotateTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCRotateTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCRotateTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCRotateTo_class->finalize = js_cocos2dx_CCRotateTo_finalize;
	js_cocos2dx_CCRotateTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCRotateTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCRotateTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCRotateTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCRotateTo_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCRotateTo_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCRotateTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCRotateTo_class,
		dummy_constructor<cocos2d::CCRotateTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "RotateTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCRotateTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCRotateTo_class;
		p->proto = js_cocos2dx_CCRotateTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCRotateBy_class;
JSObject *js_cocos2dx_CCRotateBy_prototype;

JSBool js_cocos2dx_CCRotateBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateBy* cobj = (cocos2d::CCRotateBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateBy* cobj = (cocos2d::CCRotateBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateBy* cobj = (cocos2d::CCRotateBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		double arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateBy_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRotateBy* cobj = (cocos2d::CCRotateBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRotateBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCRotateBy* ret = cocos2d::CCRotateBy::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRotateBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCRotateBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCRotateBy* ret = cocos2d::CCRotateBy::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRotateBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCRotateBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCRotateBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCRotateBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCRotateBy_class->name = "RotateBy";
	js_cocos2dx_CCRotateBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCRotateBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCRotateBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCRotateBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCRotateBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCRotateBy_class->finalize = js_cocos2dx_CCRotateBy_finalize;
	js_cocos2dx_CCRotateBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCRotateBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCRotateBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCRotateBy_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCRotateBy_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCRotateBy_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCRotateBy_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCRotateBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCRotateBy_class,
		dummy_constructor<cocos2d::CCRotateBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "RotateBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCRotateBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCRotateBy_class;
		p->proto = js_cocos2dx_CCRotateBy_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMoveTo_class;
JSObject *js_cocos2dx_CCMoveTo_prototype;

JSBool js_cocos2dx_CCMoveTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveTo* cobj = (cocos2d::CCMoveTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveTo* cobj = (cocos2d::CCMoveTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::CCPoint arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveTo* cobj = (cocos2d::CCMoveTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	cocos2d::CCMoveTo* ret = cocos2d::CCMoveTo::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMoveTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMoveTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	cocos2d::CCMoveTo* ret = cocos2d::CCMoveTo::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMoveTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCMoveTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMoveTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMoveTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMoveTo_class->name = "MoveTo";
	js_cocos2dx_CCMoveTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMoveTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMoveTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMoveTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMoveTo_class->finalize = js_cocos2dx_CCMoveTo_finalize;
	js_cocos2dx_CCMoveTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCMoveTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCMoveTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCMoveTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCMoveTo_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCMoveTo_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMoveTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCMoveTo_class,
		dummy_constructor<cocos2d::CCMoveTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MoveTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMoveTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMoveTo_class;
		p->proto = js_cocos2dx_CCMoveTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMoveBy_class;
JSObject *js_cocos2dx_CCMoveBy_prototype;

JSBool js_cocos2dx_CCMoveBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveBy* cobj = (cocos2d::CCMoveBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveBy* cobj = (cocos2d::CCMoveBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::CCPoint arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMoveBy* cobj = (cocos2d::CCMoveBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMoveBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	cocos2d::CCMoveBy* ret = cocos2d::CCMoveBy::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMoveBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMoveBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	cocos2d::CCMoveBy* ret = cocos2d::CCMoveBy::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMoveBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCMoveBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMoveBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMoveBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMoveBy_class->name = "MoveBy";
	js_cocos2dx_CCMoveBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMoveBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMoveBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMoveBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMoveBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMoveBy_class->finalize = js_cocos2dx_CCMoveBy_finalize;
	js_cocos2dx_CCMoveBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCMoveBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCMoveBy_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCMoveBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCMoveBy_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCMoveBy_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMoveBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMoveTo_prototype,
		js_cocos2dx_CCMoveBy_class,
		dummy_constructor<cocos2d::CCMoveBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MoveBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMoveBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMoveBy_class;
		p->proto = js_cocos2dx_CCMoveBy_prototype;
		p->parentProto = js_cocos2dx_CCMoveTo_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSkewTo_class;
JSObject *js_cocos2dx_CCSkewTo_prototype;

JSBool js_cocos2dx_CCSkewTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewTo* cobj = (cocos2d::CCSkewTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewTo* cobj = (cocos2d::CCSkewTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewTo* cobj = (cocos2d::CCSkewTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		double arg1;
		double arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCSkewTo* ret = cocos2d::CCSkewTo::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSkewTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSkewTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCSkewTo* ret = cocos2d::CCSkewTo::actionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSkewTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSkewTo_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCSkewTo* cobj = new cocos2d::CCSkewTo();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCSkewTo> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCSkewTo");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCSkewTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSkewTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSkewTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSkewTo_class->name = "SkewTo";
	js_cocos2dx_CCSkewTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSkewTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSkewTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSkewTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSkewTo_class->finalize = js_cocos2dx_CCSkewTo_finalize;
	js_cocos2dx_CCSkewTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCSkewTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCSkewTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCSkewTo_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCSkewTo_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCSkewTo_actionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSkewTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCSkewTo_class,
		js_cocos2dx_CCSkewTo_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "SkewTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSkewTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSkewTo_class;
		p->proto = js_cocos2dx_CCSkewTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSkewBy_class;
JSObject *js_cocos2dx_CCSkewBy_prototype;

JSBool js_cocos2dx_CCSkewBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewBy* cobj = (cocos2d::CCSkewBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewBy* cobj = (cocos2d::CCSkewBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSkewBy* cobj = (cocos2d::CCSkewBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		double arg1;
		double arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSkewBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCSkewBy* ret = cocos2d::CCSkewBy::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSkewBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSkewBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCSkewBy* ret = cocos2d::CCSkewBy::actionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSkewBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCSkewBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSkewBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSkewBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSkewBy_class->name = "SkewBy";
	js_cocos2dx_CCSkewBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSkewBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSkewBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSkewBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSkewBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSkewBy_class->finalize = js_cocos2dx_CCSkewBy_finalize;
	js_cocos2dx_CCSkewBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCSkewBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCSkewBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCSkewBy_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCSkewBy_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCSkewBy_actionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSkewBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCSkewTo_prototype,
		js_cocos2dx_CCSkewBy_class,
		dummy_constructor<cocos2d::CCSkewBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "SkewBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSkewBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSkewBy_class;
		p->proto = js_cocos2dx_CCSkewBy_prototype;
		p->parentProto = js_cocos2dx_CCSkewTo_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCJumpBy_class;
JSObject *js_cocos2dx_CCJumpBy_prototype;

JSBool js_cocos2dx_CCJumpBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpBy* cobj = (cocos2d::CCJumpBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpBy* cobj = (cocos2d::CCJumpBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpBy* cobj = (cocos2d::CCJumpBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		double arg0;
		cocos2d::CCPoint arg1;
		double arg2;
		unsigned int arg3;
		JS_ValueToNumber(cx, argv[0], &arg0);
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		JS_ValueToNumber(cx, argv[2], &arg2);
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpBy_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpBy* cobj = (cocos2d::CCJumpBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	double arg2;
	unsigned int arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToECMAUint32(cx, argv[3], &arg3);
	cocos2d::CCJumpBy* ret = cocos2d::CCJumpBy::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCJumpBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	double arg2;
	unsigned int arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToECMAUint32(cx, argv[3], &arg3);
	cocos2d::CCJumpBy* ret = cocos2d::CCJumpBy::actionWithDuration(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCJumpBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCJumpBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCJumpBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCJumpBy_class->name = "JumpBy";
	js_cocos2dx_CCJumpBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCJumpBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCJumpBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCJumpBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCJumpBy_class->finalize = js_cocos2dx_CCJumpBy_finalize;
	js_cocos2dx_CCJumpBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCJumpBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCJumpBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCJumpBy_initWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCJumpBy_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCJumpBy_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCJumpBy_actionWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCJumpBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCJumpBy_class,
		dummy_constructor<cocos2d::CCJumpBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "JumpBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCJumpBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCJumpBy_class;
		p->proto = js_cocos2dx_CCJumpBy_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCJumpTo_class;
JSObject *js_cocos2dx_CCJumpTo_prototype;

JSBool js_cocos2dx_CCJumpTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTo* cobj = (cocos2d::CCJumpTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	double arg2;
	int arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	cocos2d::CCJumpTo* ret = cocos2d::CCJumpTo::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCJumpTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCPoint arg1;
	double arg2;
	int arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	arg1 = jsval_to_ccpoint(cx, argv[1]);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	cocos2d::CCJumpTo* ret = cocos2d::CCJumpTo::actionWithDuration(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCJumpTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCJumpTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCJumpTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCJumpTo_class->name = "JumpTo";
	js_cocos2dx_CCJumpTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCJumpTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCJumpTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCJumpTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCJumpTo_class->finalize = js_cocos2dx_CCJumpTo_finalize;
	js_cocos2dx_CCJumpTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCJumpTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCJumpTo_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCJumpTo_actionWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCJumpTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCJumpBy_prototype,
		js_cocos2dx_CCJumpTo_class,
		dummy_constructor<cocos2d::CCJumpTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "JumpTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCJumpTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCJumpTo_class;
		p->proto = js_cocos2dx_CCJumpTo_prototype;
		p->parentProto = js_cocos2dx_CCJumpBy_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCBezierBy_class;
JSObject *js_cocos2dx_CCBezierBy_prototype;

JSBool js_cocos2dx_CCBezierBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBezierBy* cobj = (cocos2d::CCBezierBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBezierBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBezierBy* cobj = (cocos2d::CCBezierBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBezierBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBezierBy* cobj = (cocos2d::CCBezierBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::ccBezierConfig arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		#pragma warning NO CONVERSION TO NATIVE FOR const ccBezierConfig;
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBezierBy_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBezierBy* cobj = (cocos2d::CCBezierBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}


void js_cocos2dx_CCBezierBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCBezierBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCBezierBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCBezierBy_class->name = "BezierBy";
	js_cocos2dx_CCBezierBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCBezierBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCBezierBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCBezierBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCBezierBy_class->finalize = js_cocos2dx_CCBezierBy_finalize;
	js_cocos2dx_CCBezierBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCBezierBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCBezierBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCBezierBy_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCBezierBy_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCBezierBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCBezierBy_class,
		dummy_constructor<cocos2d::CCBezierBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "BezierBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCBezierBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCBezierBy_class;
		p->proto = js_cocos2dx_CCBezierBy_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCBezierTo_class;
JSObject *js_cocos2dx_CCBezierTo_prototype;

JSBool js_cocos2dx_CCBezierTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBezierTo* cobj = (cocos2d::CCBezierTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}


void js_cocos2dx_CCBezierTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCBezierTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCBezierTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCBezierTo_class->name = "BezierTo";
	js_cocos2dx_CCBezierTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCBezierTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCBezierTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCBezierTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCBezierTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCBezierTo_class->finalize = js_cocos2dx_CCBezierTo_finalize;
	js_cocos2dx_CCBezierTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCBezierTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCBezierTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCBezierBy_prototype,
		js_cocos2dx_CCBezierTo_class,
		dummy_constructor<cocos2d::CCBezierTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "BezierTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCBezierTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCBezierTo_class;
		p->proto = js_cocos2dx_CCBezierTo_prototype;
		p->parentProto = js_cocos2dx_CCBezierBy_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCScaleTo_class;
JSObject *js_cocos2dx_CCScaleTo_prototype;

JSBool js_cocos2dx_CCScaleTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScaleTo* cobj = (cocos2d::CCScaleTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCScaleTo* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCScaleTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScaleTo* cobj = (cocos2d::CCScaleTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCScaleTo* ret = cocos2d::CCScaleTo::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleTo>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCScaleTo* ret = cocos2d::CCScaleTo::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleTo>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCScaleTo* ret = cocos2d::CCScaleTo::actionWithDuration(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleTo>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCScaleTo* ret = cocos2d::CCScaleTo::actionWithDuration(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleTo>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}


void js_cocos2dx_CCScaleTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCScaleTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCScaleTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCScaleTo_class->name = "ScaleTo";
	js_cocos2dx_CCScaleTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCScaleTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCScaleTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCScaleTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCScaleTo_class->finalize = js_cocos2dx_CCScaleTo_finalize;
	js_cocos2dx_CCScaleTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCScaleTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCScaleTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCScaleTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCScaleTo_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCScaleTo_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCScaleTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCScaleTo_class,
		dummy_constructor<cocos2d::CCScaleTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ScaleTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCScaleTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCScaleTo_class;
		p->proto = js_cocos2dx_CCScaleTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCScaleBy_class;
JSObject *js_cocos2dx_CCScaleBy_prototype;

JSBool js_cocos2dx_CCScaleBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScaleBy* cobj = (cocos2d::CCScaleBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScaleBy* cobj = (cocos2d::CCScaleBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCScaleBy* ret = cocos2d::CCScaleBy::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleBy>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCScaleBy* ret = cocos2d::CCScaleBy::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleBy>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScaleBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCScaleBy* ret = cocos2d::CCScaleBy::actionWithDuration(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleBy>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCScaleBy* ret = cocos2d::CCScaleBy::actionWithDuration(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScaleBy>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}


void js_cocos2dx_CCScaleBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCScaleBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCScaleBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCScaleBy_class->name = "ScaleBy";
	js_cocos2dx_CCScaleBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCScaleBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCScaleBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCScaleBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCScaleBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCScaleBy_class->finalize = js_cocos2dx_CCScaleBy_finalize;
	js_cocos2dx_CCScaleBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCScaleBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCScaleBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCScaleBy_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCScaleBy_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCScaleBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCScaleTo_prototype,
		js_cocos2dx_CCScaleBy_class,
		dummy_constructor<cocos2d::CCScaleBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ScaleBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCScaleBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCScaleBy_class;
		p->proto = js_cocos2dx_CCScaleBy_prototype;
		p->parentProto = js_cocos2dx_CCScaleTo_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCBlink_class;
JSObject *js_cocos2dx_CCBlink_prototype;

JSBool js_cocos2dx_CCBlink_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBlink* cobj = (cocos2d::CCBlink *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBlink_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBlink* cobj = (cocos2d::CCBlink *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		unsigned int arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBlink_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCBlink* cobj = (cocos2d::CCBlink *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCBlink_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	unsigned int arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCBlink* ret = cocos2d::CCBlink::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCBlink>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCBlink_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	unsigned int arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCBlink* ret = cocos2d::CCBlink::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCBlink>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCBlink_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCBlink(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCBlink_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCBlink_class->name = "Blink";
	js_cocos2dx_CCBlink_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCBlink_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCBlink_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCBlink_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCBlink_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCBlink_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCBlink_class->convert = JS_ConvertStub;
	js_cocos2dx_CCBlink_class->finalize = js_cocos2dx_CCBlink_finalize;
	js_cocos2dx_CCBlink_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCBlink_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCBlink_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCBlink_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCBlink_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCBlink_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCBlink_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCBlink_class,
		dummy_constructor<cocos2d::CCBlink>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Blink", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCBlink> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCBlink_class;
		p->proto = js_cocos2dx_CCBlink_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeIn_class;
JSObject *js_cocos2dx_CCFadeIn_prototype;

JSBool js_cocos2dx_CCFadeIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeIn* cobj = (cocos2d::CCFadeIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeIn* cobj = (cocos2d::CCFadeIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFadeIn* ret = cocos2d::CCFadeIn::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeIn_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFadeIn* ret = cocos2d::CCFadeIn::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeIn_class->name = "FadeIn";
	js_cocos2dx_CCFadeIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeIn_class->finalize = js_cocos2dx_CCFadeIn_finalize;
	js_cocos2dx_CCFadeIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCFadeIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCFadeIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCFadeIn_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCFadeIn_class,
		dummy_constructor<cocos2d::CCFadeIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeIn_class;
		p->proto = js_cocos2dx_CCFadeIn_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeOut_class;
JSObject *js_cocos2dx_CCFadeOut_prototype;

JSBool js_cocos2dx_CCFadeOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOut* cobj = (cocos2d::CCFadeOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOut* cobj = (cocos2d::CCFadeOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFadeOut* ret = cocos2d::CCFadeOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeOut_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFadeOut* ret = cocos2d::CCFadeOut::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeOut_class->name = "FadeOut";
	js_cocos2dx_CCFadeOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeOut_class->finalize = js_cocos2dx_CCFadeOut_finalize;
	js_cocos2dx_CCFadeOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCFadeOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCFadeOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCFadeOut_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCFadeOut_class,
		dummy_constructor<cocos2d::CCFadeOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeOut_class;
		p->proto = js_cocos2dx_CCFadeOut_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeTo_class;
JSObject *js_cocos2dx_CCFadeTo_prototype;

JSBool js_cocos2dx_CCFadeTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeTo* cobj = (cocos2d::CCFadeTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeTo* cobj = (cocos2d::CCFadeTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		uint16_t arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToUint16(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeTo* cobj = (cocos2d::CCFadeTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	uint16_t arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToUint16(cx, argv[1], &arg1);
	cocos2d::CCFadeTo* ret = cocos2d::CCFadeTo::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	uint16_t arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToUint16(cx, argv[1], &arg1);
	cocos2d::CCFadeTo* ret = cocos2d::CCFadeTo::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeTo_class->name = "FadeTo";
	js_cocos2dx_CCFadeTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeTo_class->finalize = js_cocos2dx_CCFadeTo_finalize;
	js_cocos2dx_CCFadeTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCFadeTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCFadeTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCFadeTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeTo_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCFadeTo_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCFadeTo_class,
		dummy_constructor<cocos2d::CCFadeTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeTo_class;
		p->proto = js_cocos2dx_CCFadeTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTintTo_class;
JSObject *js_cocos2dx_CCTintTo_prototype;

JSBool js_cocos2dx_CCTintTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintTo* cobj = (cocos2d::CCTintTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintTo* cobj = (cocos2d::CCTintTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		double arg0;
		uint16_t arg1;
		uint16_t arg2;
		uint16_t arg3;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToUint16(cx, argv[1], &arg1);
		JS_ValueToUint16(cx, argv[2], &arg2);
		JS_ValueToUint16(cx, argv[3], &arg3);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintTo* cobj = (cocos2d::CCTintTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	uint16_t arg1;
	uint16_t arg2;
	uint16_t arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToUint16(cx, argv[1], &arg1);
	JS_ValueToUint16(cx, argv[2], &arg2);
	JS_ValueToUint16(cx, argv[3], &arg3);
	cocos2d::CCTintTo* ret = cocos2d::CCTintTo::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTintTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTintTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	uint16_t arg1;
	uint16_t arg2;
	uint16_t arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToUint16(cx, argv[1], &arg1);
	JS_ValueToUint16(cx, argv[2], &arg2);
	JS_ValueToUint16(cx, argv[3], &arg3);
	cocos2d::CCTintTo* ret = cocos2d::CCTintTo::actionWithDuration(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTintTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTintTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTintTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTintTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTintTo_class->name = "TintTo";
	js_cocos2dx_CCTintTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTintTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTintTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTintTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTintTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTintTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTintTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTintTo_class->finalize = js_cocos2dx_CCTintTo_finalize;
	js_cocos2dx_CCTintTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCTintTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCTintTo_initWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCTintTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTintTo_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCTintTo_actionWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTintTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCTintTo_class,
		dummy_constructor<cocos2d::CCTintTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TintTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTintTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTintTo_class;
		p->proto = js_cocos2dx_CCTintTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTintBy_class;
JSObject *js_cocos2dx_CCTintBy_prototype;

JSBool js_cocos2dx_CCTintBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintBy* cobj = (cocos2d::CCTintBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintBy* cobj = (cocos2d::CCTintBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintBy* cobj = (cocos2d::CCTintBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		double arg0;
		int32_t arg1;
		int32_t arg2;
		int32_t arg3;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToInt32(cx, argv[1], &arg1);
		JS_ValueToInt32(cx, argv[2], &arg2);
		JS_ValueToInt32(cx, argv[3], &arg3);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintBy_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTintBy* cobj = (cocos2d::CCTintBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTintBy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	int32_t arg1;
	int32_t arg2;
	int32_t arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToInt32(cx, argv[1], &arg1);
	JS_ValueToInt32(cx, argv[2], &arg2);
	JS_ValueToInt32(cx, argv[3], &arg3);
	cocos2d::CCTintBy* ret = cocos2d::CCTintBy::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTintBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTintBy_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	int32_t arg1;
	int32_t arg2;
	int32_t arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToInt32(cx, argv[1], &arg1);
	JS_ValueToInt32(cx, argv[2], &arg2);
	JS_ValueToInt32(cx, argv[3], &arg3);
	cocos2d::CCTintBy* ret = cocos2d::CCTintBy::actionWithDuration(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTintBy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTintBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTintBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTintBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTintBy_class->name = "TintBy";
	js_cocos2dx_CCTintBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTintBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTintBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTintBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTintBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTintBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTintBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTintBy_class->finalize = js_cocos2dx_CCTintBy_finalize;
	js_cocos2dx_CCTintBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCTintBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCTintBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCTintBy_initWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCTintBy_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTintBy_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCTintBy_actionWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTintBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCTintBy_class,
		dummy_constructor<cocos2d::CCTintBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TintBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTintBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTintBy_class;
		p->proto = js_cocos2dx_CCTintBy_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCDelayTime_class;
JSObject *js_cocos2dx_CCDelayTime_prototype;

JSBool js_cocos2dx_CCDelayTime_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDelayTime* cobj = (cocos2d::CCDelayTime *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDelayTime_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDelayTime* cobj = (cocos2d::CCDelayTime *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDelayTime_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCDelayTime* ret = cocos2d::CCDelayTime::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDelayTime>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCDelayTime_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCDelayTime* ret = cocos2d::CCDelayTime::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDelayTime>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCDelayTime_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCDelayTime(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCDelayTime_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCDelayTime_class->name = "DelayTime";
	js_cocos2dx_CCDelayTime_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCDelayTime_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCDelayTime_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCDelayTime_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCDelayTime_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCDelayTime_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCDelayTime_class->convert = JS_ConvertStub;
	js_cocos2dx_CCDelayTime_class->finalize = js_cocos2dx_CCDelayTime_finalize;
	js_cocos2dx_CCDelayTime_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCDelayTime_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCDelayTime_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCDelayTime_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCDelayTime_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCDelayTime_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCDelayTime_class,
		dummy_constructor<cocos2d::CCDelayTime>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "DelayTime", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCDelayTime> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCDelayTime_class;
		p->proto = js_cocos2dx_CCDelayTime_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCAnimate_class;
JSObject *js_cocos2dx_CCAnimate_prototype;

JSBool js_cocos2dx_CCAnimate_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_getAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCAnimation* ret = cobj->getAnimation();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimation>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_initWithAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAnimation* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAnimation*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithAnimation(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_setAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAnimation* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAnimation*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setAnimation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimate* cobj = (cocos2d::CCAnimate *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimate_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCAnimation* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAnimation*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCAnimate* ret = cocos2d::CCAnimate::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimate>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimate_actionWithAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCAnimation* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAnimation*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCAnimate* ret = cocos2d::CCAnimate::actionWithAnimation(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimate>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimate_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAnimate* cobj = new cocos2d::CCAnimate();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAnimate> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAnimate");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAnimate_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAnimate(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAnimate_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAnimate_class->name = "Animate";
	js_cocos2dx_CCAnimate_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimate_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimate_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimate_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAnimate_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAnimate_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAnimate_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAnimate_class->finalize = js_cocos2dx_CCAnimate_finalize;
	js_cocos2dx_CCAnimate_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCAnimate_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAnimation", js_cocos2dx_CCAnimate_getAnimation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCAnimate_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCAnimate_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAnimation", js_cocos2dx_CCAnimate_initWithAnimation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAnimation", js_cocos2dx_CCAnimate_setAnimation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCAnimate_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCAnimate_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAnimation", js_cocos2dx_CCAnimate_actionWithAnimation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCAnimate_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCAnimate_class,
		js_cocos2dx_CCAnimate_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Animate", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAnimate> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAnimate_class;
		p->proto = js_cocos2dx_CCAnimate_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTargetedAction_class;
JSObject *js_cocos2dx_CCTargetedAction_prototype;

JSBool js_cocos2dx_CCTargetedAction_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_setForcedTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setForcedTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_initWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		cocos2d::CCFiniteTimeAction* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithTarget(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_getForcedTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTargetedAction* cobj = (cocos2d::CCTargetedAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getForcedTarget();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTargetedAction_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	cocos2d::CCFiniteTimeAction* arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTargetedAction* ret = cocos2d::CCTargetedAction::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTargetedAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTargetedAction_actionWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	cocos2d::CCFiniteTimeAction* arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCFiniteTimeAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTargetedAction* ret = cocos2d::CCTargetedAction::actionWithTarget(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTargetedAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTargetedAction_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTargetedAction* cobj = new cocos2d::CCTargetedAction();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTargetedAction> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTargetedAction");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTargetedAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTargetedAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTargetedAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTargetedAction_class->name = "TargetedAction";
	js_cocos2dx_CCTargetedAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTargetedAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTargetedAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTargetedAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTargetedAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTargetedAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTargetedAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTargetedAction_class->finalize = js_cocos2dx_CCTargetedAction_finalize;
	js_cocos2dx_CCTargetedAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCTargetedAction_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setForcedTarget", js_cocos2dx_CCTargetedAction_setForcedTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTarget", js_cocos2dx_CCTargetedAction_initWithTarget, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCTargetedAction_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCTargetedAction_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getForcedTarget", js_cocos2dx_CCTargetedAction_getForcedTarget, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTargetedAction_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithTarget", js_cocos2dx_CCTargetedAction_actionWithTarget, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTargetedAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCTargetedAction_class,
		js_cocos2dx_CCTargetedAction_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TargetedAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTargetedAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTargetedAction_class;
		p->proto = js_cocos2dx_CCTargetedAction_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionCamera_class;
JSObject *js_cocos2dx_CCActionCamera_prototype;

JSBool js_cocos2dx_CCActionCamera_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionCamera* cobj = (cocos2d::CCActionCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionCamera_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionCamera* cobj = (cocos2d::CCActionCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionCamera_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCActionCamera* cobj = new cocos2d::CCActionCamera();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCActionCamera> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCActionCamera");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCActionCamera_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionCamera(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionCamera_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionCamera_class->name = "ActionCamera";
	js_cocos2dx_CCActionCamera_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionCamera_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionCamera_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionCamera_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionCamera_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionCamera_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionCamera_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionCamera_class->finalize = js_cocos2dx_CCActionCamera_finalize;
	js_cocos2dx_CCActionCamera_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCActionCamera_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCActionCamera_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCActionCamera_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCActionCamera_class,
		js_cocos2dx_CCActionCamera_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionCamera", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionCamera> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionCamera_class;
		p->proto = js_cocos2dx_CCActionCamera_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCOrbitCamera_class;
JSObject *js_cocos2dx_CCOrbitCamera_prototype;

JSBool js_cocos2dx_CCOrbitCamera_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCOrbitCamera* cobj = (cocos2d::CCOrbitCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCOrbitCamera_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCOrbitCamera* cobj = (cocos2d::CCOrbitCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 7) {
		double arg0;
		double arg1;
		double arg2;
		double arg3;
		double arg4;
		double arg5;
		double arg6;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		JS_ValueToNumber(cx, argv[3], &arg3);
		JS_ValueToNumber(cx, argv[4], &arg4);
		JS_ValueToNumber(cx, argv[5], &arg5);
		JS_ValueToNumber(cx, argv[6], &arg6);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 7);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCOrbitCamera_sphericalRadius(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCOrbitCamera* cobj = (cocos2d::CCOrbitCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		float* arg0;
		float* arg1;
		float* arg2;
		#pragma warning NO CONVERSION TO NATIVE FOR float*;
		#pragma warning NO CONVERSION TO NATIVE FOR float*;
		#pragma warning NO CONVERSION TO NATIVE FOR float*;
		cobj->sphericalRadius(arg0, arg1, arg2);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCOrbitCamera_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCOrbitCamera* cobj = (cocos2d::CCOrbitCamera *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCOrbitCamera_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	double arg3;
	double arg4;
	double arg5;
	double arg6;
	assert(argc >= 7);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToNumber(cx, argv[3], &arg3);
	JS_ValueToNumber(cx, argv[4], &arg4);
	JS_ValueToNumber(cx, argv[5], &arg5);
	JS_ValueToNumber(cx, argv[6], &arg6);
	cocos2d::CCOrbitCamera* ret = cocos2d::CCOrbitCamera::create(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCOrbitCamera>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCOrbitCamera_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	double arg3;
	double arg4;
	double arg5;
	double arg6;
	assert(argc >= 7);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToNumber(cx, argv[3], &arg3);
	JS_ValueToNumber(cx, argv[4], &arg4);
	JS_ValueToNumber(cx, argv[5], &arg5);
	JS_ValueToNumber(cx, argv[6], &arg6);
	cocos2d::CCOrbitCamera* ret = cocos2d::CCOrbitCamera::actionWithDuration(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCOrbitCamera>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCOrbitCamera_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCOrbitCamera* cobj = new cocos2d::CCOrbitCamera();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCOrbitCamera> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCOrbitCamera");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCOrbitCamera_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCOrbitCamera(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCOrbitCamera_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCOrbitCamera_class->name = "OrbitCamera";
	js_cocos2dx_CCOrbitCamera_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCOrbitCamera_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCOrbitCamera_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCOrbitCamera_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCOrbitCamera_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCOrbitCamera_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCOrbitCamera_class->convert = JS_ConvertStub;
	js_cocos2dx_CCOrbitCamera_class->finalize = js_cocos2dx_CCOrbitCamera_finalize;
	js_cocos2dx_CCOrbitCamera_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCOrbitCamera_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCOrbitCamera_initWithDuration, 7, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("sphericalRadius", js_cocos2dx_CCOrbitCamera_sphericalRadius, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCOrbitCamera_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCOrbitCamera_create, 7, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCOrbitCamera_actionWithDuration, 7, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCOrbitCamera_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionCamera_prototype,
		js_cocos2dx_CCOrbitCamera_class,
		js_cocos2dx_CCOrbitCamera_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "OrbitCamera", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCOrbitCamera> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCOrbitCamera_class;
		p->proto = js_cocos2dx_CCOrbitCamera_prototype;
		p->parentProto = js_cocos2dx_CCActionCamera_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionManager_class;
JSObject *js_cocos2dx_CCActionManager_prototype;

JSBool js_cocos2dx_CCActionManager_getActionByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		unsigned int arg0;
		cocos2d::CCObject* arg1;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCAction* ret = cobj->getActionByTag(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_removeActionByTag(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		unsigned int arg0;
		cocos2d::CCObject* arg1;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->removeActionByTag(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_removeAllActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->removeAllActions();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_addAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCAction* arg0;
		cocos2d::CCNode* arg1;
		JSBool arg2;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cobj->addAction(arg0, arg1, arg2);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_resumeTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->resumeTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_pauseTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->pauseTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_removeAllActionsFromTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeAllActionsFromTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_resumeTargets(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSet* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->resumeTargets(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_removeAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAction* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAction*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeAction(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_numberOfRunningActionsInTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int ret = cobj->numberOfRunningActionsInTarget(arg0);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_pauseAllRunningActions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionManager* cobj = (cocos2d::CCActionManager *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSet* ret = cobj->pauseAllRunningActions();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSet>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionManager_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCActionManager* cobj = new cocos2d::CCActionManager();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCActionManager> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCActionManager");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCActionManager_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionManager(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionManager_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionManager_class->name = "ActionManager";
	js_cocos2dx_CCActionManager_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionManager_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionManager_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionManager_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionManager_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionManager_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionManager_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionManager_class->finalize = js_cocos2dx_CCActionManager_finalize;
	js_cocos2dx_CCActionManager_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getActionByTag", js_cocos2dx_CCActionManager_getActionByTag, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeActionByTag", js_cocos2dx_CCActionManager_removeActionByTag, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllActions", js_cocos2dx_CCActionManager_removeAllActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addAction", js_cocos2dx_CCActionManager_addAction, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeTarget", js_cocos2dx_CCActionManager_resumeTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseTarget", js_cocos2dx_CCActionManager_pauseTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllActionsFromTarget", js_cocos2dx_CCActionManager_removeAllActionsFromTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeTargets", js_cocos2dx_CCActionManager_resumeTargets, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAction", js_cocos2dx_CCActionManager_removeAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("numberOfRunningActionsInTarget", js_cocos2dx_CCActionManager_numberOfRunningActionsInTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseAllRunningActions", js_cocos2dx_CCActionManager_pauseAllRunningActions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCActionManager_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCActionManager_class,
		js_cocos2dx_CCActionManager_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionManager", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionManager> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionManager_class;
		p->proto = js_cocos2dx_CCActionManager_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionEase_class;
JSObject *js_cocos2dx_CCActionEase_prototype;

JSBool js_cocos2dx_CCActionEase_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionEase* cobj = (cocos2d::CCActionEase *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionEase_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionEase* cobj = (cocos2d::CCActionEase *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionEase_stop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionEase* cobj = (cocos2d::CCActionEase *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionEase_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionEase* cobj = (cocos2d::CCActionEase *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionEase_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionEase* cobj = (cocos2d::CCActionEase *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithAction(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionEase_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCActionEase* ret = cocos2d::CCActionEase::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionEase>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCActionEase_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCActionEase* ret = cocos2d::CCActionEase::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionEase>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCActionEase_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionEase(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionEase_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionEase_class->name = "ActionEase";
	js_cocos2dx_CCActionEase_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionEase_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionEase_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionEase_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionEase_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionEase_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionEase_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionEase_class->finalize = js_cocos2dx_CCActionEase_finalize;
	js_cocos2dx_CCActionEase_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCActionEase_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCActionEase_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stop", js_cocos2dx_CCActionEase_stop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCActionEase_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCActionEase_initWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCActionEase_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCActionEase_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCActionEase_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCActionEase_class,
		dummy_constructor<cocos2d::CCActionEase>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionEase", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionEase> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionEase_class;
		p->proto = js_cocos2dx_CCActionEase_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseRateAction_class;
JSObject *js_cocos2dx_CCEaseRateAction_prototype;

JSBool js_cocos2dx_CCEaseRateAction_setRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseRateAction* cobj = (cocos2d::CCEaseRateAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseRateAction_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseRateAction* cobj = (cocos2d::CCEaseRateAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		double arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithAction(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseRateAction_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseRateAction* cobj = (cocos2d::CCEaseRateAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseRateAction_getRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseRateAction* cobj = (cocos2d::CCEaseRateAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRate();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseRateAction_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseRateAction* ret = cocos2d::CCEaseRateAction::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseRateAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseRateAction_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseRateAction* ret = cocos2d::CCEaseRateAction::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseRateAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseRateAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseRateAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseRateAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseRateAction_class->name = "EaseRateAction";
	js_cocos2dx_CCEaseRateAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseRateAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseRateAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseRateAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseRateAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseRateAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseRateAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseRateAction_class->finalize = js_cocos2dx_CCEaseRateAction_finalize;
	js_cocos2dx_CCEaseRateAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setRate", js_cocos2dx_CCEaseRateAction_setRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCEaseRateAction_initWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseRateAction_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRate", js_cocos2dx_CCEaseRateAction_getRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseRateAction_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseRateAction_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseRateAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseRateAction_class,
		dummy_constructor<cocos2d::CCEaseRateAction>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseRateAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseRateAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseRateAction_class;
		p->proto = js_cocos2dx_CCEaseRateAction_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseIn_class;
JSObject *js_cocos2dx_CCEaseIn_prototype;

JSBool js_cocos2dx_CCEaseIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseIn* cobj = (cocos2d::CCEaseIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseIn* cobj = (cocos2d::CCEaseIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseIn* ret = cocos2d::CCEaseIn::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseIn* ret = cocos2d::CCEaseIn::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseIn_class->name = "EaseIn";
	js_cocos2dx_CCEaseIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseIn_class->finalize = js_cocos2dx_CCEaseIn_finalize;
	js_cocos2dx_CCEaseIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseIn_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseIn_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseRateAction_prototype,
		js_cocos2dx_CCEaseIn_class,
		dummy_constructor<cocos2d::CCEaseIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseIn_class;
		p->proto = js_cocos2dx_CCEaseIn_prototype;
		p->parentProto = js_cocos2dx_CCEaseRateAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseOut_class;
JSObject *js_cocos2dx_CCEaseOut_prototype;

JSBool js_cocos2dx_CCEaseOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseOut* cobj = (cocos2d::CCEaseOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseOut* cobj = (cocos2d::CCEaseOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseOut* ret = cocos2d::CCEaseOut::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseOut* ret = cocos2d::CCEaseOut::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseOut_class->name = "EaseOut";
	js_cocos2dx_CCEaseOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseOut_class->finalize = js_cocos2dx_CCEaseOut_finalize;
	js_cocos2dx_CCEaseOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseOut_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseOut_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseRateAction_prototype,
		js_cocos2dx_CCEaseOut_class,
		dummy_constructor<cocos2d::CCEaseOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseOut_class;
		p->proto = js_cocos2dx_CCEaseOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseRateAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseInOut_class;
JSObject *js_cocos2dx_CCEaseInOut_prototype;

JSBool js_cocos2dx_CCEaseInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseInOut* cobj = (cocos2d::CCEaseInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseInOut* cobj = (cocos2d::CCEaseInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseInOut* ret = cocos2d::CCEaseInOut::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseInOut* ret = cocos2d::CCEaseInOut::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseInOut_class->name = "EaseInOut";
	js_cocos2dx_CCEaseInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseInOut_class->finalize = js_cocos2dx_CCEaseInOut_finalize;
	js_cocos2dx_CCEaseInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCEaseInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCEaseInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseInOut_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseInOut_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseRateAction_prototype,
		js_cocos2dx_CCEaseInOut_class,
		dummy_constructor<cocos2d::CCEaseInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseInOut_class;
		p->proto = js_cocos2dx_CCEaseInOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseRateAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseExponentialIn_class;
JSObject *js_cocos2dx_CCEaseExponentialIn_prototype;

JSBool js_cocos2dx_CCEaseExponentialIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialIn* cobj = (cocos2d::CCEaseExponentialIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialIn* cobj = (cocos2d::CCEaseExponentialIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialIn* ret = cocos2d::CCEaseExponentialIn::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseExponentialIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialIn* ret = cocos2d::CCEaseExponentialIn::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseExponentialIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseExponentialIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseExponentialIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseExponentialIn_class->name = "EaseExponentialIn";
	js_cocos2dx_CCEaseExponentialIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseExponentialIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseExponentialIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseExponentialIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseExponentialIn_class->finalize = js_cocos2dx_CCEaseExponentialIn_finalize;
	js_cocos2dx_CCEaseExponentialIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseExponentialIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseExponentialIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseExponentialIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseExponentialIn_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseExponentialIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseExponentialIn_class,
		dummy_constructor<cocos2d::CCEaseExponentialIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseExponentialIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseExponentialIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseExponentialIn_class;
		p->proto = js_cocos2dx_CCEaseExponentialIn_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseExponentialOut_class;
JSObject *js_cocos2dx_CCEaseExponentialOut_prototype;

JSBool js_cocos2dx_CCEaseExponentialOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialOut* cobj = (cocos2d::CCEaseExponentialOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialOut* cobj = (cocos2d::CCEaseExponentialOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialOut* ret = cocos2d::CCEaseExponentialOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseExponentialOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialOut* ret = cocos2d::CCEaseExponentialOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseExponentialOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseExponentialOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseExponentialOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseExponentialOut_class->name = "EaseExponentialOut";
	js_cocos2dx_CCEaseExponentialOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseExponentialOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseExponentialOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseExponentialOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseExponentialOut_class->finalize = js_cocos2dx_CCEaseExponentialOut_finalize;
	js_cocos2dx_CCEaseExponentialOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseExponentialOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseExponentialOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseExponentialOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseExponentialOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseExponentialOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseExponentialOut_class,
		dummy_constructor<cocos2d::CCEaseExponentialOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseExponentialOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseExponentialOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseExponentialOut_class;
		p->proto = js_cocos2dx_CCEaseExponentialOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseExponentialInOut_class;
JSObject *js_cocos2dx_CCEaseExponentialInOut_prototype;

JSBool js_cocos2dx_CCEaseExponentialInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialInOut* cobj = (cocos2d::CCEaseExponentialInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseExponentialInOut* cobj = (cocos2d::CCEaseExponentialInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseExponentialInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialInOut* ret = cocos2d::CCEaseExponentialInOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseExponentialInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseExponentialInOut* ret = cocos2d::CCEaseExponentialInOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseExponentialInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseExponentialInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseExponentialInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseExponentialInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseExponentialInOut_class->name = "EaseExponentialInOut";
	js_cocos2dx_CCEaseExponentialInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseExponentialInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseExponentialInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseExponentialInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseExponentialInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseExponentialInOut_class->finalize = js_cocos2dx_CCEaseExponentialInOut_finalize;
	js_cocos2dx_CCEaseExponentialInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCEaseExponentialInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCEaseExponentialInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseExponentialInOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseExponentialInOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseExponentialInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseExponentialInOut_class,
		dummy_constructor<cocos2d::CCEaseExponentialInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseExponentialInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseExponentialInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseExponentialInOut_class;
		p->proto = js_cocos2dx_CCEaseExponentialInOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseSineIn_class;
JSObject *js_cocos2dx_CCEaseSineIn_prototype;

JSBool js_cocos2dx_CCEaseSineIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineIn* cobj = (cocos2d::CCEaseSineIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineIn* cobj = (cocos2d::CCEaseSineIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineIn* ret = cocos2d::CCEaseSineIn::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseSineIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineIn* ret = cocos2d::CCEaseSineIn::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseSineIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseSineIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseSineIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseSineIn_class->name = "EaseSineIn";
	js_cocos2dx_CCEaseSineIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseSineIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseSineIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseSineIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseSineIn_class->finalize = js_cocos2dx_CCEaseSineIn_finalize;
	js_cocos2dx_CCEaseSineIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseSineIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseSineIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseSineIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseSineIn_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseSineIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseSineIn_class,
		dummy_constructor<cocos2d::CCEaseSineIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseSineIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseSineIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseSineIn_class;
		p->proto = js_cocos2dx_CCEaseSineIn_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseSineOut_class;
JSObject *js_cocos2dx_CCEaseSineOut_prototype;

JSBool js_cocos2dx_CCEaseSineOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineOut* cobj = (cocos2d::CCEaseSineOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineOut* cobj = (cocos2d::CCEaseSineOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineOut* ret = cocos2d::CCEaseSineOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseSineOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineOut* ret = cocos2d::CCEaseSineOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseSineOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseSineOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseSineOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseSineOut_class->name = "EaseSineOut";
	js_cocos2dx_CCEaseSineOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseSineOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseSineOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseSineOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseSineOut_class->finalize = js_cocos2dx_CCEaseSineOut_finalize;
	js_cocos2dx_CCEaseSineOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseSineOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseSineOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseSineOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseSineOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseSineOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseSineOut_class,
		dummy_constructor<cocos2d::CCEaseSineOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseSineOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseSineOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseSineOut_class;
		p->proto = js_cocos2dx_CCEaseSineOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseSineInOut_class;
JSObject *js_cocos2dx_CCEaseSineInOut_prototype;

JSBool js_cocos2dx_CCEaseSineInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineInOut* cobj = (cocos2d::CCEaseSineInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseSineInOut* cobj = (cocos2d::CCEaseSineInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseSineInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineInOut* ret = cocos2d::CCEaseSineInOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseSineInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseSineInOut* ret = cocos2d::CCEaseSineInOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseSineInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseSineInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseSineInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseSineInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseSineInOut_class->name = "EaseSineInOut";
	js_cocos2dx_CCEaseSineInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseSineInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseSineInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseSineInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseSineInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseSineInOut_class->finalize = js_cocos2dx_CCEaseSineInOut_finalize;
	js_cocos2dx_CCEaseSineInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCEaseSineInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCEaseSineInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseSineInOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseSineInOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseSineInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseSineInOut_class,
		dummy_constructor<cocos2d::CCEaseSineInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseSineInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseSineInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseSineInOut_class;
		p->proto = js_cocos2dx_CCEaseSineInOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseElastic_class;
JSObject *js_cocos2dx_CCEaseElastic_prototype;

JSBool js_cocos2dx_CCEaseElastic_setPeriod(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElastic* cobj = (cocos2d::CCEaseElastic *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setPeriod(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElastic_initWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElastic* cobj = (cocos2d::CCEaseElastic *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		double arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithAction(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElastic_getPeriod(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElastic* cobj = (cocos2d::CCEaseElastic *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getPeriod();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElastic_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElastic* cobj = (cocos2d::CCEaseElastic *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElastic_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCEaseElastic* ret = cocos2d::CCEaseElastic::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElastic>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCEaseElastic* ret = cocos2d::CCEaseElastic::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElastic>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElastic_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseElastic* ret = cocos2d::CCEaseElastic::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElastic>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseElastic_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseElastic(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseElastic_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseElastic_class->name = "EaseElastic";
	js_cocos2dx_CCEaseElastic_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElastic_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElastic_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElastic_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseElastic_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseElastic_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseElastic_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseElastic_class->finalize = js_cocos2dx_CCEaseElastic_finalize;
	js_cocos2dx_CCEaseElastic_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setPeriod", js_cocos2dx_CCEaseElastic_setPeriod, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithAction", js_cocos2dx_CCEaseElastic_initWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPeriod", js_cocos2dx_CCEaseElastic_getPeriod, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseElastic_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseElastic_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseElastic_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseElastic_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseElastic_class,
		dummy_constructor<cocos2d::CCEaseElastic>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseElastic", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseElastic> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseElastic_class;
		p->proto = js_cocos2dx_CCEaseElastic_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseElasticIn_class;
JSObject *js_cocos2dx_CCEaseElasticIn_prototype;

JSBool js_cocos2dx_CCEaseElasticIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticIn* cobj = (cocos2d::CCEaseElasticIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticIn* cobj = (cocos2d::CCEaseElasticIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCEaseElasticIn* ret = cocos2d::CCEaseElasticIn::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticIn>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCEaseElasticIn* ret = cocos2d::CCEaseElasticIn::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticIn>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseElasticIn* ret = cocos2d::CCEaseElasticIn::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseElasticIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseElasticIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseElasticIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseElasticIn_class->name = "EaseElasticIn";
	js_cocos2dx_CCEaseElasticIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseElasticIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseElasticIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseElasticIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseElasticIn_class->finalize = js_cocos2dx_CCEaseElasticIn_finalize;
	js_cocos2dx_CCEaseElasticIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseElasticIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseElasticIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseElasticIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseElasticIn_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseElasticIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseElastic_prototype,
		js_cocos2dx_CCEaseElasticIn_class,
		dummy_constructor<cocos2d::CCEaseElasticIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseElasticIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseElasticIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseElasticIn_class;
		p->proto = js_cocos2dx_CCEaseElasticIn_prototype;
		p->parentProto = js_cocos2dx_CCEaseElastic_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseElasticOut_class;
JSObject *js_cocos2dx_CCEaseElasticOut_prototype;

JSBool js_cocos2dx_CCEaseElasticOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticOut* cobj = (cocos2d::CCEaseElasticOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticOut* cobj = (cocos2d::CCEaseElasticOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCEaseElasticOut* ret = cocos2d::CCEaseElasticOut::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticOut>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCEaseElasticOut* ret = cocos2d::CCEaseElasticOut::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticOut>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseElasticOut* ret = cocos2d::CCEaseElasticOut::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseElasticOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseElasticOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseElasticOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseElasticOut_class->name = "EaseElasticOut";
	js_cocos2dx_CCEaseElasticOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseElasticOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseElasticOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseElasticOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseElasticOut_class->finalize = js_cocos2dx_CCEaseElasticOut_finalize;
	js_cocos2dx_CCEaseElasticOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseElasticOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseElasticOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseElasticOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseElasticOut_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseElasticOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseElastic_prototype,
		js_cocos2dx_CCEaseElasticOut_class,
		dummy_constructor<cocos2d::CCEaseElasticOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseElasticOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseElasticOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseElasticOut_class;
		p->proto = js_cocos2dx_CCEaseElasticOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseElastic_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseElasticInOut_class;
JSObject *js_cocos2dx_CCEaseElasticInOut_prototype;

JSBool js_cocos2dx_CCEaseElasticInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticInOut* cobj = (cocos2d::CCEaseElasticInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseElasticInOut* cobj = (cocos2d::CCEaseElasticInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCEaseElasticInOut* ret = cocos2d::CCEaseElasticInOut::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticInOut>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		cocos2d::CCEaseElasticInOut* ret = cocos2d::CCEaseElasticInOut::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticInOut>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseElasticInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	double arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCEaseElasticInOut* ret = cocos2d::CCEaseElasticInOut::actionWithAction(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseElasticInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseElasticInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseElasticInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseElasticInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseElasticInOut_class->name = "EaseElasticInOut";
	js_cocos2dx_CCEaseElasticInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseElasticInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseElasticInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseElasticInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseElasticInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseElasticInOut_class->finalize = js_cocos2dx_CCEaseElasticInOut_finalize;
	js_cocos2dx_CCEaseElasticInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseElasticInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseElasticInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseElasticInOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseElasticInOut_actionWithAction, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseElasticInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseElastic_prototype,
		js_cocos2dx_CCEaseElasticInOut_class,
		dummy_constructor<cocos2d::CCEaseElasticInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseElasticInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseElasticInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseElasticInOut_class;
		p->proto = js_cocos2dx_CCEaseElasticInOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseElastic_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBounce_class;
JSObject *js_cocos2dx_CCEaseBounce_prototype;

JSBool js_cocos2dx_CCEaseBounce_bounceTime(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounce* cobj = (cocos2d::CCEaseBounce *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		float ret = cobj->bounceTime(arg0);
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounce_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounce* cobj = (cocos2d::CCEaseBounce *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounce_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounce* ret = cocos2d::CCEaseBounce::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounce>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBounce_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounce* ret = cocos2d::CCEaseBounce::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounce>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBounce_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBounce(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBounce_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBounce_class->name = "EaseBounce";
	js_cocos2dx_CCEaseBounce_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounce_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounce_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounce_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBounce_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBounce_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBounce_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBounce_class->finalize = js_cocos2dx_CCEaseBounce_finalize;
	js_cocos2dx_CCEaseBounce_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("bounceTime", js_cocos2dx_CCEaseBounce_bounceTime, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseBounce_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBounce_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBounce_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBounce_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseBounce_class,
		dummy_constructor<cocos2d::CCEaseBounce>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBounce", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBounce> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBounce_class;
		p->proto = js_cocos2dx_CCEaseBounce_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBounceIn_class;
JSObject *js_cocos2dx_CCEaseBounceIn_prototype;

JSBool js_cocos2dx_CCEaseBounceIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceIn* cobj = (cocos2d::CCEaseBounceIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceIn* cobj = (cocos2d::CCEaseBounceIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceIn* ret = cocos2d::CCEaseBounceIn::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBounceIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceIn* ret = cocos2d::CCEaseBounceIn::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBounceIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBounceIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBounceIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBounceIn_class->name = "EaseBounceIn";
	js_cocos2dx_CCEaseBounceIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBounceIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBounceIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBounceIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBounceIn_class->finalize = js_cocos2dx_CCEaseBounceIn_finalize;
	js_cocos2dx_CCEaseBounceIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseBounceIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseBounceIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBounceIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBounceIn_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBounceIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseBounce_prototype,
		js_cocos2dx_CCEaseBounceIn_class,
		dummy_constructor<cocos2d::CCEaseBounceIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBounceIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBounceIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBounceIn_class;
		p->proto = js_cocos2dx_CCEaseBounceIn_prototype;
		p->parentProto = js_cocos2dx_CCEaseBounce_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBounceOut_class;
JSObject *js_cocos2dx_CCEaseBounceOut_prototype;

JSBool js_cocos2dx_CCEaseBounceOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceOut* cobj = (cocos2d::CCEaseBounceOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceOut* cobj = (cocos2d::CCEaseBounceOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceOut* ret = cocos2d::CCEaseBounceOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBounceOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceOut* ret = cocos2d::CCEaseBounceOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBounceOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBounceOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBounceOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBounceOut_class->name = "EaseBounceOut";
	js_cocos2dx_CCEaseBounceOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBounceOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBounceOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBounceOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBounceOut_class->finalize = js_cocos2dx_CCEaseBounceOut_finalize;
	js_cocos2dx_CCEaseBounceOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseBounceOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseBounceOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBounceOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBounceOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBounceOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseBounce_prototype,
		js_cocos2dx_CCEaseBounceOut_class,
		dummy_constructor<cocos2d::CCEaseBounceOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBounceOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBounceOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBounceOut_class;
		p->proto = js_cocos2dx_CCEaseBounceOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseBounce_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBounceInOut_class;
JSObject *js_cocos2dx_CCEaseBounceInOut_prototype;

JSBool js_cocos2dx_CCEaseBounceInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceInOut* cobj = (cocos2d::CCEaseBounceInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBounceInOut* cobj = (cocos2d::CCEaseBounceInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBounceInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceInOut* ret = cocos2d::CCEaseBounceInOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBounceInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBounceInOut* ret = cocos2d::CCEaseBounceInOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBounceInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBounceInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBounceInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBounceInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBounceInOut_class->name = "EaseBounceInOut";
	js_cocos2dx_CCEaseBounceInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBounceInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBounceInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBounceInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBounceInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBounceInOut_class->finalize = js_cocos2dx_CCEaseBounceInOut_finalize;
	js_cocos2dx_CCEaseBounceInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCEaseBounceInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCEaseBounceInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBounceInOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBounceInOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBounceInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCEaseBounce_prototype,
		js_cocos2dx_CCEaseBounceInOut_class,
		dummy_constructor<cocos2d::CCEaseBounceInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBounceInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBounceInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBounceInOut_class;
		p->proto = js_cocos2dx_CCEaseBounceInOut_prototype;
		p->parentProto = js_cocos2dx_CCEaseBounce_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBackIn_class;
JSObject *js_cocos2dx_CCEaseBackIn_prototype;

JSBool js_cocos2dx_CCEaseBackIn_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackIn* cobj = (cocos2d::CCEaseBackIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackIn_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackIn* cobj = (cocos2d::CCEaseBackIn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackIn* ret = cocos2d::CCEaseBackIn::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBackIn_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackIn* ret = cocos2d::CCEaseBackIn::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBackIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBackIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBackIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBackIn_class->name = "EaseBackIn";
	js_cocos2dx_CCEaseBackIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBackIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBackIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBackIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBackIn_class->finalize = js_cocos2dx_CCEaseBackIn_finalize;
	js_cocos2dx_CCEaseBackIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseBackIn_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseBackIn_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBackIn_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBackIn_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBackIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseBackIn_class,
		dummy_constructor<cocos2d::CCEaseBackIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBackIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBackIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBackIn_class;
		p->proto = js_cocos2dx_CCEaseBackIn_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBackOut_class;
JSObject *js_cocos2dx_CCEaseBackOut_prototype;

JSBool js_cocos2dx_CCEaseBackOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackOut* cobj = (cocos2d::CCEaseBackOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackOut* cobj = (cocos2d::CCEaseBackOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackOut* ret = cocos2d::CCEaseBackOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBackOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackOut* ret = cocos2d::CCEaseBackOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBackOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBackOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBackOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBackOut_class->name = "EaseBackOut";
	js_cocos2dx_CCEaseBackOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBackOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBackOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBackOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBackOut_class->finalize = js_cocos2dx_CCEaseBackOut_finalize;
	js_cocos2dx_CCEaseBackOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCEaseBackOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCEaseBackOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBackOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBackOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBackOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseBackOut_class,
		dummy_constructor<cocos2d::CCEaseBackOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBackOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBackOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBackOut_class;
		p->proto = js_cocos2dx_CCEaseBackOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCEaseBackInOut_class;
JSObject *js_cocos2dx_CCEaseBackInOut_prototype;

JSBool js_cocos2dx_CCEaseBackInOut_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackInOut* cobj = (cocos2d::CCEaseBackInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackInOut_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCEaseBackInOut* cobj = (cocos2d::CCEaseBackInOut *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCEaseBackInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackInOut* ret = cocos2d::CCEaseBackInOut::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCEaseBackInOut_actionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCActionInterval* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCEaseBackInOut* ret = cocos2d::CCEaseBackInOut::actionWithAction(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCEaseBackInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCEaseBackInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCEaseBackInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCEaseBackInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCEaseBackInOut_class->name = "EaseBackInOut";
	js_cocos2dx_CCEaseBackInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCEaseBackInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCEaseBackInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCEaseBackInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCEaseBackInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCEaseBackInOut_class->finalize = js_cocos2dx_CCEaseBackInOut_finalize;
	js_cocos2dx_CCEaseBackInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCEaseBackInOut_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCEaseBackInOut_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCEaseBackInOut_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithAction", js_cocos2dx_CCEaseBackInOut_actionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCEaseBackInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionEase_prototype,
		js_cocos2dx_CCEaseBackInOut_class,
		dummy_constructor<cocos2d::CCEaseBackInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "EaseBackInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCEaseBackInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCEaseBackInOut_class;
		p->proto = js_cocos2dx_CCEaseBackInOut_prototype;
		p->parentProto = js_cocos2dx_CCActionEase_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionInstant_class;
JSObject *js_cocos2dx_CCActionInstant_prototype;

JSBool js_cocos2dx_CCActionInstant_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInstant* cobj = (cocos2d::CCActionInstant *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInstant_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInstant* cobj = (cocos2d::CCActionInstant *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInstant_step(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInstant* cobj = (cocos2d::CCActionInstant *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->step(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInstant_isDone(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionInstant* cobj = (cocos2d::CCActionInstant *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDone();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionInstant_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCActionInstant* cobj = new cocos2d::CCActionInstant();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCActionInstant> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCActionInstant");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCActionInstant_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionInstant(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionInstant_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionInstant_class->name = "ActionInstant";
	js_cocos2dx_CCActionInstant_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInstant_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInstant_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionInstant_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionInstant_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionInstant_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionInstant_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionInstant_class->finalize = js_cocos2dx_CCActionInstant_finalize;
	js_cocos2dx_CCActionInstant_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCActionInstant_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCActionInstant_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("step", js_cocos2dx_CCActionInstant_step, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDone", js_cocos2dx_CCActionInstant_isDone, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCActionInstant_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFiniteTimeAction_prototype,
		js_cocos2dx_CCActionInstant_class,
		js_cocos2dx_CCActionInstant_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionInstant", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionInstant> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionInstant_class;
		p->proto = js_cocos2dx_CCActionInstant_prototype;
		p->parentProto = js_cocos2dx_CCFiniteTimeAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCShow_class;
JSObject *js_cocos2dx_CCShow_prototype;

JSBool js_cocos2dx_CCShow_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCShow* cobj = (cocos2d::CCShow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCShow_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCShow* cobj = (cocos2d::CCShow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCShow_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCShow* ret = cocos2d::CCShow::action();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCShow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCShow_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCShow* ret = cocos2d::CCShow::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCShow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCShow_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCShow* cobj = new cocos2d::CCShow();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCShow> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCShow");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCShow_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCShow(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCShow_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCShow_class->name = "Show";
	js_cocos2dx_CCShow_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCShow_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCShow_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCShow_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCShow_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCShow_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCShow_class->convert = JS_ConvertStub;
	js_cocos2dx_CCShow_class->finalize = js_cocos2dx_CCShow_finalize;
	js_cocos2dx_CCShow_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCShow_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCShow_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("action", js_cocos2dx_CCShow_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCShow_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCShow_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCShow_class,
		js_cocos2dx_CCShow_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Show", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCShow> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCShow_class;
		p->proto = js_cocos2dx_CCShow_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCHide_class;
JSObject *js_cocos2dx_CCHide_prototype;

JSBool js_cocos2dx_CCHide_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCHide* cobj = (cocos2d::CCHide *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCHide_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCHide* cobj = (cocos2d::CCHide *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCHide_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCHide* ret = cocos2d::CCHide::action();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCHide>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCHide_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCHide* ret = cocos2d::CCHide::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCHide>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCHide_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCHide* cobj = new cocos2d::CCHide();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCHide> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCHide");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCHide_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCHide(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCHide_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCHide_class->name = "Hide";
	js_cocos2dx_CCHide_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCHide_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCHide_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCHide_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCHide_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCHide_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCHide_class->convert = JS_ConvertStub;
	js_cocos2dx_CCHide_class->finalize = js_cocos2dx_CCHide_finalize;
	js_cocos2dx_CCHide_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("reverse", js_cocos2dx_CCHide_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCHide_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("action", js_cocos2dx_CCHide_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCHide_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCHide_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCHide_class,
		js_cocos2dx_CCHide_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Hide", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCHide> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCHide_class;
		p->proto = js_cocos2dx_CCHide_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCToggleVisibility_class;
JSObject *js_cocos2dx_CCToggleVisibility_prototype;

JSBool js_cocos2dx_CCToggleVisibility_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCToggleVisibility* cobj = (cocos2d::CCToggleVisibility *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCToggleVisibility_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCToggleVisibility* ret = cocos2d::CCToggleVisibility::action();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCToggleVisibility>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCToggleVisibility_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCToggleVisibility* ret = cocos2d::CCToggleVisibility::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCToggleVisibility>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCToggleVisibility_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCToggleVisibility* cobj = new cocos2d::CCToggleVisibility();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCToggleVisibility> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCToggleVisibility");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCToggleVisibility_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCToggleVisibility(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCToggleVisibility_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCToggleVisibility_class->name = "ToggleVisibility";
	js_cocos2dx_CCToggleVisibility_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCToggleVisibility_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCToggleVisibility_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCToggleVisibility_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCToggleVisibility_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCToggleVisibility_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCToggleVisibility_class->convert = JS_ConvertStub;
	js_cocos2dx_CCToggleVisibility_class->finalize = js_cocos2dx_CCToggleVisibility_finalize;
	js_cocos2dx_CCToggleVisibility_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCToggleVisibility_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("action", js_cocos2dx_CCToggleVisibility_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCToggleVisibility_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCToggleVisibility_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCToggleVisibility_class,
		js_cocos2dx_CCToggleVisibility_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ToggleVisibility", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCToggleVisibility> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCToggleVisibility_class;
		p->proto = js_cocos2dx_CCToggleVisibility_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFlipX_class;
JSObject *js_cocos2dx_CCFlipX_prototype;

JSBool js_cocos2dx_CCFlipX_initWithFlipX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX* cobj = (cocos2d::CCFlipX *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		bool ret = cobj->initWithFlipX(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX* cobj = (cocos2d::CCFlipX *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX* cobj = (cocos2d::CCFlipX *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX_actionWithFlipX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSBool arg0;
	assert(argc >= 1);

	JS_ValueToBoolean(cx, argv[0], &arg0);
	cocos2d::CCFlipX* ret = cocos2d::CCFlipX::actionWithFlipX(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipX>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipX_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSBool arg0;
	assert(argc >= 1);

	JS_ValueToBoolean(cx, argv[0], &arg0);
	cocos2d::CCFlipX* ret = cocos2d::CCFlipX::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipX>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipX_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCFlipX* cobj = new cocos2d::CCFlipX();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCFlipX> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCFlipX");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCFlipX_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFlipX(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFlipX_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFlipX_class->name = "FlipX";
	js_cocos2dx_CCFlipX_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFlipX_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFlipX_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFlipX_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFlipX_class->finalize = js_cocos2dx_CCFlipX_finalize;
	js_cocos2dx_CCFlipX_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithFlipX", js_cocos2dx_CCFlipX_initWithFlipX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCFlipX_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCFlipX_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("actionWithFlipX", js_cocos2dx_CCFlipX_actionWithFlipX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCFlipX_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFlipX_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCFlipX_class,
		js_cocos2dx_CCFlipX_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FlipX", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFlipX> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFlipX_class;
		p->proto = js_cocos2dx_CCFlipX_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFlipY_class;
JSObject *js_cocos2dx_CCFlipY_prototype;

JSBool js_cocos2dx_CCFlipY_initWithFlipY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipY* cobj = (cocos2d::CCFlipY *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		bool ret = cobj->initWithFlipY(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipY_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipY* cobj = (cocos2d::CCFlipY *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCFiniteTimeAction* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFiniteTimeAction>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipY_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipY* cobj = (cocos2d::CCFlipY *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipY_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSBool arg0;
	assert(argc >= 1);

	JS_ValueToBoolean(cx, argv[0], &arg0);
	cocos2d::CCFlipY* ret = cocos2d::CCFlipY::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipY>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipY_actionWithFlipY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSBool arg0;
	assert(argc >= 1);

	JS_ValueToBoolean(cx, argv[0], &arg0);
	cocos2d::CCFlipY* ret = cocos2d::CCFlipY::actionWithFlipY(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipY>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipY_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCFlipY* cobj = new cocos2d::CCFlipY();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCFlipY> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCFlipY");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCFlipY_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFlipY(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFlipY_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFlipY_class->name = "FlipY";
	js_cocos2dx_CCFlipY_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFlipY_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFlipY_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFlipY_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFlipY_class->finalize = js_cocos2dx_CCFlipY_finalize;
	js_cocos2dx_CCFlipY_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithFlipY", js_cocos2dx_CCFlipY_initWithFlipY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCFlipY_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCFlipY_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFlipY_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithFlipY", js_cocos2dx_CCFlipY_actionWithFlipY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFlipY_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCFlipY_class,
		js_cocos2dx_CCFlipY_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FlipY", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFlipY> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFlipY_class;
		p->proto = js_cocos2dx_CCFlipY_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCPlace_class;
JSObject *js_cocos2dx_CCPlace_prototype;

JSBool js_cocos2dx_CCPlace_initWithPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPlace* cobj = (cocos2d::CCPlace *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		bool ret = cobj->initWithPosition(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPlace_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPlace* cobj = (cocos2d::CCPlace *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPlace_actionWithPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCPoint arg0;
	assert(argc >= 1);

	arg0 = jsval_to_ccpoint(cx, argv[0]);
	cocos2d::CCPlace* ret = cocos2d::CCPlace::actionWithPosition(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPlace>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCPlace_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCPoint arg0;
	assert(argc >= 1);

	arg0 = jsval_to_ccpoint(cx, argv[0]);
	cocos2d::CCPlace* ret = cocos2d::CCPlace::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPlace>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCPlace_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCPlace* cobj = new cocos2d::CCPlace();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCPlace> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCPlace");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCPlace_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCPlace(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCPlace_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCPlace_class->name = "Place";
	js_cocos2dx_CCPlace_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCPlace_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCPlace_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCPlace_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCPlace_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCPlace_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCPlace_class->convert = JS_ConvertStub;
	js_cocos2dx_CCPlace_class->finalize = js_cocos2dx_CCPlace_finalize;
	js_cocos2dx_CCPlace_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithPosition", js_cocos2dx_CCPlace_initWithPosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCPlace_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("actionWithPosition", js_cocos2dx_CCPlace_actionWithPosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCPlace_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCPlace_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCPlace_class,
		js_cocos2dx_CCPlace_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Place", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCPlace> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCPlace_class;
		p->proto = js_cocos2dx_CCPlace_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCCallFunc_class;
JSObject *js_cocos2dx_CCCallFunc_prototype;

JSBool js_cocos2dx_CCCallFunc_execute(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->execute();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_initWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithTarget(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_getTargetCallback(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCObject* ret = cobj->getTargetCallback();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCObject>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_getScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getScriptHandler();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_setTargetCallback(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCallFunc* cobj = (cocos2d::CCCallFunc *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTargetCallback(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCallFunc_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCCallFunc* cobj = new cocos2d::CCCallFunc();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCCallFunc> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCCallFunc");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCCallFunc_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCCallFunc(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCCallFunc_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCCallFunc_class->name = "CallFunc";
	js_cocos2dx_CCCallFunc_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCCallFunc_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCCallFunc_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCCallFunc_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCCallFunc_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCCallFunc_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCCallFunc_class->convert = JS_ConvertStub;
	js_cocos2dx_CCCallFunc_class->finalize = js_cocos2dx_CCCallFunc_finalize;
	js_cocos2dx_CCCallFunc_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("execute", js_cocos2dx_CCCallFunc_execute, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTarget", js_cocos2dx_CCCallFunc_initWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCCallFunc_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTargetCallback", js_cocos2dx_CCCallFunc_getTargetCallback, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScriptHandler", js_cocos2dx_CCCallFunc_getScriptHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTargetCallback", js_cocos2dx_CCCallFunc_setTargetCallback, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCCallFunc_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInstant_prototype,
		js_cocos2dx_CCCallFunc_class,
		js_cocos2dx_CCCallFunc_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "CallFunc", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCCallFunc> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCCallFunc_class;
		p->proto = js_cocos2dx_CCCallFunc_prototype;
		p->parentProto = js_cocos2dx_CCActionInstant_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCGridAction_class;
JSObject *js_cocos2dx_CCGridAction_prototype;

JSBool js_cocos2dx_CCGridAction_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGridAction* cobj = (cocos2d::CCGridAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGridAction_initWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGridAction* cobj = (cocos2d::CCGridAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithSize(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGridAction_getGrid(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGridAction* cobj = (cocos2d::CCGridAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCGridBase* ret = cobj->getGrid();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGridBase>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGridAction_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGridAction* cobj = (cocos2d::CCGridAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGridAction_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCGridAction* ret = cocos2d::CCGridAction::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGridAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCGridAction_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCGridAction* ret = cocos2d::CCGridAction::actionWithSize(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGridAction>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCGridAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCGridAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCGridAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCGridAction_class->name = "GridAction";
	js_cocos2dx_CCGridAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCGridAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCGridAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCGridAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCGridAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCGridAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCGridAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCGridAction_class->finalize = js_cocos2dx_CCGridAction_finalize;
	js_cocos2dx_CCGridAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCGridAction_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSize", js_cocos2dx_CCGridAction_initWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getGrid", js_cocos2dx_CCGridAction_getGrid, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCGridAction_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCGridAction_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCGridAction_actionWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCGridAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCGridAction_class,
		dummy_constructor<cocos2d::CCGridAction>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "GridAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCGridAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCGridAction_class;
		p->proto = js_cocos2dx_CCGridAction_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCGrid3DAction_class;
JSObject *js_cocos2dx_CCGrid3DAction_prototype;

JSBool js_cocos2dx_CCGrid3DAction_setVertex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGrid3DAction* cobj = (cocos2d::CCGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		cocos2d::ccVertex3F arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		#pragma warning NO CONVERSION TO NATIVE FOR const ccVertex3F;
		cobj->setVertex(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGrid3DAction_getGrid(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGrid3DAction* cobj = (cocos2d::CCGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCGridBase* ret = cobj->getGrid();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGridBase>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGrid3DAction_vertex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGrid3DAction* cobj = (cocos2d::CCGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		ccVertex3F ret = cobj->vertex(arg0);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR ccVertex3F;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCGrid3DAction_originalVertex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCGrid3DAction* cobj = (cocos2d::CCGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		ccVertex3F ret = cobj->originalVertex(arg0);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR ccVertex3F;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}


void js_cocos2dx_CCGrid3DAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCGrid3DAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCGrid3DAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCGrid3DAction_class->name = "Grid3DAction";
	js_cocos2dx_CCGrid3DAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCGrid3DAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCGrid3DAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCGrid3DAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCGrid3DAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCGrid3DAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCGrid3DAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCGrid3DAction_class->finalize = js_cocos2dx_CCGrid3DAction_finalize;
	js_cocos2dx_CCGrid3DAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("setVertex", js_cocos2dx_CCGrid3DAction_setVertex, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getGrid", js_cocos2dx_CCGrid3DAction_getGrid, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("vertex", js_cocos2dx_CCGrid3DAction_vertex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("originalVertex", js_cocos2dx_CCGrid3DAction_originalVertex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCGrid3DAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCGridAction_prototype,
		js_cocos2dx_CCGrid3DAction_class,
		dummy_constructor<cocos2d::CCGrid3DAction>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Grid3DAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCGrid3DAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCGrid3DAction_class;
		p->proto = js_cocos2dx_CCGrid3DAction_prototype;
		p->parentProto = js_cocos2dx_CCGridAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTiledGrid3DAction_class;
JSObject *js_cocos2dx_CCTiledGrid3DAction_prototype;

JSBool js_cocos2dx_CCTiledGrid3DAction_tile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTiledGrid3DAction* cobj = (cocos2d::CCTiledGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		ccQuad3 ret = cobj->tile(arg0);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR ccQuad3;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTiledGrid3DAction_setTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTiledGrid3DAction* cobj = (cocos2d::CCTiledGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		cocos2d::ccQuad3 arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		#pragma warning NO CONVERSION TO NATIVE FOR const ccQuad3;
		cobj->setTile(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTiledGrid3DAction_originalTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTiledGrid3DAction* cobj = (cocos2d::CCTiledGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		ccQuad3 ret = cobj->originalTile(arg0);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR ccQuad3;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTiledGrid3DAction_getGrid(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTiledGrid3DAction* cobj = (cocos2d::CCTiledGrid3DAction *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCGridBase* ret = cobj->getGrid();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCGridBase>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}


void js_cocos2dx_CCTiledGrid3DAction_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTiledGrid3DAction(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTiledGrid3DAction_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTiledGrid3DAction_class->name = "TiledGrid3DAction";
	js_cocos2dx_CCTiledGrid3DAction_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTiledGrid3DAction_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTiledGrid3DAction_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTiledGrid3DAction_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTiledGrid3DAction_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTiledGrid3DAction_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTiledGrid3DAction_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTiledGrid3DAction_class->finalize = js_cocos2dx_CCTiledGrid3DAction_finalize;
	js_cocos2dx_CCTiledGrid3DAction_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("tile", js_cocos2dx_CCTiledGrid3DAction_tile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTile", js_cocos2dx_CCTiledGrid3DAction_setTile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("originalTile", js_cocos2dx_CCTiledGrid3DAction_originalTile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getGrid", js_cocos2dx_CCTiledGrid3DAction_getGrid, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTiledGrid3DAction_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCGridAction_prototype,
		js_cocos2dx_CCTiledGrid3DAction_class,
		dummy_constructor<cocos2d::CCTiledGrid3DAction>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TiledGrid3DAction", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTiledGrid3DAction> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTiledGrid3DAction_class;
		p->proto = js_cocos2dx_CCTiledGrid3DAction_prototype;
		p->parentProto = js_cocos2dx_CCGridAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCWaves3D_class;
JSObject *js_cocos2dx_CCWaves3D_prototype;

JSBool js_cocos2dx_CCWaves3D_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_getAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAmplitudeRate();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_setAmplitude(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAmplitude(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_getAmplitude(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAmplitude();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_initWithWaves(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		int arg0;
		double arg1;
		cocos2d::ccGridSize arg2;
		double arg3;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		arg2 = jsval_to_ccgridsize(cx, argv[2]);
		JS_ValueToNumber(cx, argv[3], &arg3);
		bool ret = cobj->initWithWaves(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_setAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCWaves3D* cobj = (cocos2d::CCWaves3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAmplitudeRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCWaves3D_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	double arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCWaves3D* ret = cocos2d::CCWaves3D::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCWaves3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCWaves3D_actionWithWaves(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	double arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCWaves3D* ret = cocos2d::CCWaves3D::actionWithWaves(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCWaves3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCWaves3D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCWaves3D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCWaves3D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCWaves3D_class->name = "Waves3D";
	js_cocos2dx_CCWaves3D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCWaves3D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCWaves3D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCWaves3D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCWaves3D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCWaves3D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCWaves3D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCWaves3D_class->finalize = js_cocos2dx_CCWaves3D_finalize;
	js_cocos2dx_CCWaves3D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCWaves3D_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAmplitudeRate", js_cocos2dx_CCWaves3D_getAmplitudeRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAmplitude", js_cocos2dx_CCWaves3D_setAmplitude, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAmplitude", js_cocos2dx_CCWaves3D_getAmplitude, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithWaves", js_cocos2dx_CCWaves3D_initWithWaves, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAmplitudeRate", js_cocos2dx_CCWaves3D_setAmplitudeRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCWaves3D_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithWaves", js_cocos2dx_CCWaves3D_actionWithWaves, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCWaves3D_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCGrid3DAction_prototype,
		js_cocos2dx_CCWaves3D_class,
		dummy_constructor<cocos2d::CCWaves3D>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Waves3D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCWaves3D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCWaves3D_class;
		p->proto = js_cocos2dx_CCWaves3D_prototype;
		p->parentProto = js_cocos2dx_CCGrid3DAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFlipX3D_class;
JSObject *js_cocos2dx_CCFlipX3D_prototype;

JSBool js_cocos2dx_CCFlipX3D_initWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX3D* cobj = (cocos2d::CCFlipX3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithSize(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX3D_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX3D* cobj = (cocos2d::CCFlipX3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		bool ret = cobj->initWithDuration(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX3D_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipX3D* cobj = (cocos2d::CCFlipX3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipX3D_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFlipX3D* ret = cocos2d::CCFlipX3D::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipX3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipX3D_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFlipX3D* ret = cocos2d::CCFlipX3D::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipX3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFlipX3D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFlipX3D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFlipX3D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFlipX3D_class->name = "FlipX3D";
	js_cocos2dx_CCFlipX3D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX3D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX3D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipX3D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFlipX3D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFlipX3D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFlipX3D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFlipX3D_class->finalize = js_cocos2dx_CCFlipX3D_finalize;
	js_cocos2dx_CCFlipX3D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithSize", js_cocos2dx_CCFlipX3D_initWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCFlipX3D_initWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCFlipX3D_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFlipX3D_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCFlipX3D_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFlipX3D_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCGrid3DAction_prototype,
		js_cocos2dx_CCFlipX3D_class,
		dummy_constructor<cocos2d::CCFlipX3D>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FlipX3D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFlipX3D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFlipX3D_class;
		p->proto = js_cocos2dx_CCFlipX3D_prototype;
		p->parentProto = js_cocos2dx_CCGrid3DAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFlipY3D_class;
JSObject *js_cocos2dx_CCFlipY3D_prototype;

JSBool js_cocos2dx_CCFlipY3D_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFlipY3D* cobj = (cocos2d::CCFlipY3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFlipY3D_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFlipY3D* ret = cocos2d::CCFlipY3D::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipY3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFlipY3D_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	assert(argc >= 1);

	JS_ValueToNumber(cx, argv[0], &arg0);
	cocos2d::CCFlipY3D* ret = cocos2d::CCFlipY3D::actionWithDuration(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFlipY3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFlipY3D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFlipY3D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFlipY3D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFlipY3D_class->name = "FlipY3D";
	js_cocos2dx_CCFlipY3D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY3D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY3D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFlipY3D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFlipY3D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFlipY3D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFlipY3D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFlipY3D_class->finalize = js_cocos2dx_CCFlipY3D_finalize;
	js_cocos2dx_CCFlipY3D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("update", js_cocos2dx_CCFlipY3D_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFlipY3D_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCFlipY3D_actionWithDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFlipY3D_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFlipX3D_prototype,
		js_cocos2dx_CCFlipY3D_class,
		dummy_constructor<cocos2d::CCFlipY3D>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FlipY3D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFlipY3D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFlipY3D_class;
		p->proto = js_cocos2dx_CCFlipY3D_prototype;
		p->parentProto = js_cocos2dx_CCFlipX3D_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCShaky3D_class;
JSObject *js_cocos2dx_CCShaky3D_prototype;

JSBool js_cocos2dx_CCShaky3D_initWithRange(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCShaky3D* cobj = (cocos2d::CCShaky3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		int arg0;
		JSBool arg1;
		cocos2d::ccGridSize arg2;
		double arg3;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		arg2 = jsval_to_ccgridsize(cx, argv[2]);
		JS_ValueToNumber(cx, argv[3], &arg3);
		bool ret = cobj->initWithRange(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCShaky3D_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCShaky3D* cobj = (cocos2d::CCShaky3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCShaky3D_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	JSBool arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToBoolean(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCShaky3D* ret = cocos2d::CCShaky3D::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCShaky3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCShaky3D_actionWithRange(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	JSBool arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToBoolean(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCShaky3D* ret = cocos2d::CCShaky3D::actionWithRange(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCShaky3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCShaky3D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCShaky3D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCShaky3D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCShaky3D_class->name = "Shaky3D";
	js_cocos2dx_CCShaky3D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCShaky3D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCShaky3D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCShaky3D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCShaky3D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCShaky3D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCShaky3D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCShaky3D_class->finalize = js_cocos2dx_CCShaky3D_finalize;
	js_cocos2dx_CCShaky3D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithRange", js_cocos2dx_CCShaky3D_initWithRange, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCShaky3D_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCShaky3D_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithRange", js_cocos2dx_CCShaky3D_actionWithRange, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCShaky3D_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCGrid3DAction_prototype,
		js_cocos2dx_CCShaky3D_class,
		dummy_constructor<cocos2d::CCShaky3D>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Shaky3D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCShaky3D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCShaky3D_class;
		p->proto = js_cocos2dx_CCShaky3D_prototype;
		p->parentProto = js_cocos2dx_CCGrid3DAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCProgressTo_class;
JSObject *js_cocos2dx_CCProgressTo_prototype;

JSBool js_cocos2dx_CCProgressTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTo* cobj = (cocos2d::CCProgressTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTo* cobj = (cocos2d::CCProgressTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		double arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTo* cobj = (cocos2d::CCProgressTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCProgressTo* ret = cocos2d::CCProgressTo::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCProgressTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCProgressTo* ret = cocos2d::CCProgressTo::actionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCProgressTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCProgressTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCProgressTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCProgressTo_class->name = "ProgressTo";
	js_cocos2dx_CCProgressTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCProgressTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCProgressTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCProgressTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCProgressTo_class->finalize = js_cocos2dx_CCProgressTo_finalize;
	js_cocos2dx_CCProgressTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCProgressTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCProgressTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCProgressTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCProgressTo_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCProgressTo_actionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCProgressTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCProgressTo_class,
		dummy_constructor<cocos2d::CCProgressTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ProgressTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCProgressTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCProgressTo_class;
		p->proto = js_cocos2dx_CCProgressTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCProgressFromTo_class;
JSObject *js_cocos2dx_CCProgressFromTo_prototype;

JSBool js_cocos2dx_CCProgressFromTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressFromTo* cobj = (cocos2d::CCProgressFromTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressFromTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressFromTo* cobj = (cocos2d::CCProgressFromTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressFromTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressFromTo* cobj = (cocos2d::CCProgressFromTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		double arg1;
		double arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressFromTo_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressFromTo* cobj = (cocos2d::CCProgressFromTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressFromTo_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCProgressFromTo* ret = cocos2d::CCProgressFromTo::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressFromTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCProgressFromTo_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	double arg1;
	double arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	JS_ValueToNumber(cx, argv[2], &arg2);
	cocos2d::CCProgressFromTo* ret = cocos2d::CCProgressFromTo::actionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressFromTo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCProgressFromTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCProgressFromTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCProgressFromTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCProgressFromTo_class->name = "ProgressFromTo";
	js_cocos2dx_CCProgressFromTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressFromTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressFromTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressFromTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCProgressFromTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCProgressFromTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCProgressFromTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCProgressFromTo_class->finalize = js_cocos2dx_CCProgressFromTo_finalize;
	js_cocos2dx_CCProgressFromTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCProgressFromTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCProgressFromTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCProgressFromTo_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCProgressFromTo_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCProgressFromTo_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCProgressFromTo_actionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCProgressFromTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCProgressFromTo_class,
		dummy_constructor<cocos2d::CCProgressFromTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ProgressFromTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCProgressFromTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCProgressFromTo_class;
		p->proto = js_cocos2dx_CCProgressFromTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeOutTRTiles_class;
JSObject *js_cocos2dx_CCFadeOutTRTiles_prototype;

JSBool js_cocos2dx_CCFadeOutTRTiles_turnOnTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutTRTiles* cobj = (cocos2d::CCFadeOutTRTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cobj->turnOnTile(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutTRTiles_turnOffTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutTRTiles* cobj = (cocos2d::CCFadeOutTRTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cobj->turnOffTile(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutTRTiles_transformTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutTRTiles* cobj = (cocos2d::CCFadeOutTRTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		cobj->transformTile(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutTRTiles_testFunc(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutTRTiles* cobj = (cocos2d::CCFadeOutTRTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		float ret = cobj->testFunc(arg0, arg1);
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutTRTiles_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutTRTiles* cobj = (cocos2d::CCFadeOutTRTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutTRTiles_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutTRTiles* ret = cocos2d::CCFadeOutTRTiles::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutTRTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeOutTRTiles_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutTRTiles* ret = cocos2d::CCFadeOutTRTiles::actionWithSize(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutTRTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeOutTRTiles_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeOutTRTiles(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeOutTRTiles_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeOutTRTiles_class->name = "FadeOutTRTiles";
	js_cocos2dx_CCFadeOutTRTiles_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutTRTiles_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutTRTiles_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutTRTiles_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeOutTRTiles_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeOutTRTiles_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeOutTRTiles_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeOutTRTiles_class->finalize = js_cocos2dx_CCFadeOutTRTiles_finalize;
	js_cocos2dx_CCFadeOutTRTiles_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("turnOnTile", js_cocos2dx_CCFadeOutTRTiles_turnOnTile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("turnOffTile", js_cocos2dx_CCFadeOutTRTiles_turnOffTile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transformTile", js_cocos2dx_CCFadeOutTRTiles_transformTile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("testFunc", js_cocos2dx_CCFadeOutTRTiles_testFunc, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCFadeOutTRTiles_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeOutTRTiles_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCFadeOutTRTiles_actionWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeOutTRTiles_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTiledGrid3DAction_prototype,
		js_cocos2dx_CCFadeOutTRTiles_class,
		dummy_constructor<cocos2d::CCFadeOutTRTiles>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeOutTRTiles", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeOutTRTiles> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeOutTRTiles_class;
		p->proto = js_cocos2dx_CCFadeOutTRTiles_prototype;
		p->parentProto = js_cocos2dx_CCTiledGrid3DAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeOutBLTiles_class;
JSObject *js_cocos2dx_CCFadeOutBLTiles_prototype;

JSBool js_cocos2dx_CCFadeOutBLTiles_testFunc(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutBLTiles* cobj = (cocos2d::CCFadeOutBLTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		float ret = cobj->testFunc(arg0, arg1);
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutBLTiles_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutBLTiles* ret = cocos2d::CCFadeOutBLTiles::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutBLTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeOutBLTiles_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutBLTiles* ret = cocos2d::CCFadeOutBLTiles::actionWithSize(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutBLTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeOutBLTiles_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeOutBLTiles(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeOutBLTiles_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeOutBLTiles_class->name = "FadeOutBLTiles";
	js_cocos2dx_CCFadeOutBLTiles_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutBLTiles_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutBLTiles_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutBLTiles_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeOutBLTiles_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeOutBLTiles_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeOutBLTiles_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeOutBLTiles_class->finalize = js_cocos2dx_CCFadeOutBLTiles_finalize;
	js_cocos2dx_CCFadeOutBLTiles_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("testFunc", js_cocos2dx_CCFadeOutBLTiles_testFunc, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeOutBLTiles_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCFadeOutBLTiles_actionWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeOutBLTiles_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFadeOutTRTiles_prototype,
		js_cocos2dx_CCFadeOutBLTiles_class,
		dummy_constructor<cocos2d::CCFadeOutBLTiles>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeOutBLTiles", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeOutBLTiles> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeOutBLTiles_class;
		p->proto = js_cocos2dx_CCFadeOutBLTiles_prototype;
		p->parentProto = js_cocos2dx_CCFadeOutTRTiles_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeOutUpTiles_class;
JSObject *js_cocos2dx_CCFadeOutUpTiles_prototype;

JSBool js_cocos2dx_CCFadeOutUpTiles_transformTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutUpTiles* cobj = (cocos2d::CCFadeOutUpTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		cobj->transformTile(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutUpTiles_testFunc(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutUpTiles* cobj = (cocos2d::CCFadeOutUpTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		float ret = cobj->testFunc(arg0, arg1);
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutUpTiles_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutUpTiles* ret = cocos2d::CCFadeOutUpTiles::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutUpTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeOutUpTiles_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutUpTiles* ret = cocos2d::CCFadeOutUpTiles::actionWithSize(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutUpTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeOutUpTiles_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeOutUpTiles(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeOutUpTiles_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeOutUpTiles_class->name = "FadeOutUpTiles";
	js_cocos2dx_CCFadeOutUpTiles_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutUpTiles_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutUpTiles_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutUpTiles_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeOutUpTiles_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeOutUpTiles_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeOutUpTiles_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeOutUpTiles_class->finalize = js_cocos2dx_CCFadeOutUpTiles_finalize;
	js_cocos2dx_CCFadeOutUpTiles_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("transformTile", js_cocos2dx_CCFadeOutUpTiles_transformTile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("testFunc", js_cocos2dx_CCFadeOutUpTiles_testFunc, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeOutUpTiles_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCFadeOutUpTiles_actionWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeOutUpTiles_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFadeOutTRTiles_prototype,
		js_cocos2dx_CCFadeOutUpTiles_class,
		dummy_constructor<cocos2d::CCFadeOutUpTiles>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeOutUpTiles", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeOutUpTiles> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeOutUpTiles_class;
		p->proto = js_cocos2dx_CCFadeOutUpTiles_prototype;
		p->parentProto = js_cocos2dx_CCFadeOutTRTiles_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCFadeOutDownTiles_class;
JSObject *js_cocos2dx_CCFadeOutDownTiles_prototype;

JSBool js_cocos2dx_CCFadeOutDownTiles_testFunc(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCFadeOutDownTiles* cobj = (cocos2d::CCFadeOutDownTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccGridSize arg0;
		double arg1;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		JS_ValueToNumber(cx, argv[1], &arg1);
		float ret = cobj->testFunc(arg0, arg1);
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCFadeOutDownTiles_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutDownTiles* ret = cocos2d::CCFadeOutDownTiles::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutDownTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCFadeOutDownTiles_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::ccGridSize arg0;
	double arg1;
	assert(argc >= 2);

	arg0 = jsval_to_ccgridsize(cx, argv[0]);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCFadeOutDownTiles* ret = cocos2d::CCFadeOutDownTiles::actionWithSize(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCFadeOutDownTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCFadeOutDownTiles_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCFadeOutDownTiles(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCFadeOutDownTiles_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCFadeOutDownTiles_class->name = "FadeOutDownTiles";
	js_cocos2dx_CCFadeOutDownTiles_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutDownTiles_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutDownTiles_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCFadeOutDownTiles_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCFadeOutDownTiles_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCFadeOutDownTiles_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCFadeOutDownTiles_class->convert = JS_ConvertStub;
	js_cocos2dx_CCFadeOutDownTiles_class->finalize = js_cocos2dx_CCFadeOutDownTiles_finalize;
	js_cocos2dx_CCFadeOutDownTiles_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("testFunc", js_cocos2dx_CCFadeOutDownTiles_testFunc, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCFadeOutDownTiles_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCFadeOutDownTiles_actionWithSize, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCFadeOutDownTiles_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCFadeOutUpTiles_prototype,
		js_cocos2dx_CCFadeOutDownTiles_class,
		dummy_constructor<cocos2d::CCFadeOutDownTiles>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "FadeOutDownTiles", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCFadeOutDownTiles> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCFadeOutDownTiles_class;
		p->proto = js_cocos2dx_CCFadeOutDownTiles_prototype;
		p->parentProto = js_cocos2dx_CCFadeOutUpTiles_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCJumpTiles3D_class;
JSObject *js_cocos2dx_CCJumpTiles3D_prototype;

JSBool js_cocos2dx_CCJumpTiles3D_setAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAmplitudeRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_initWithJumps(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		int arg0;
		double arg1;
		cocos2d::ccGridSize arg2;
		double arg3;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		arg2 = jsval_to_ccgridsize(cx, argv[2]);
		JS_ValueToNumber(cx, argv[3], &arg3);
		bool ret = cobj->initWithJumps(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_getAmplitudeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAmplitudeRate();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_setAmplitude(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAmplitude(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_getAmplitude(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCJumpTiles3D* cobj = (cocos2d::CCJumpTiles3D *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAmplitude();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCJumpTiles3D_actionWithJumps(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	double arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCJumpTiles3D* ret = cocos2d::CCJumpTiles3D::actionWithJumps(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpTiles3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCJumpTiles3D_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	double arg1;
	cocos2d::ccGridSize arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	arg2 = jsval_to_ccgridsize(cx, argv[2]);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCJumpTiles3D* ret = cocos2d::CCJumpTiles3D::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCJumpTiles3D>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCJumpTiles3D_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCJumpTiles3D(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCJumpTiles3D_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCJumpTiles3D_class->name = "JumpTiles3D";
	js_cocos2dx_CCJumpTiles3D_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTiles3D_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTiles3D_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCJumpTiles3D_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCJumpTiles3D_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCJumpTiles3D_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCJumpTiles3D_class->convert = JS_ConvertStub;
	js_cocos2dx_CCJumpTiles3D_class->finalize = js_cocos2dx_CCJumpTiles3D_finalize;
	js_cocos2dx_CCJumpTiles3D_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setAmplitudeRate", js_cocos2dx_CCJumpTiles3D_setAmplitudeRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithJumps", js_cocos2dx_CCJumpTiles3D_initWithJumps, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCJumpTiles3D_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAmplitudeRate", js_cocos2dx_CCJumpTiles3D_getAmplitudeRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAmplitude", js_cocos2dx_CCJumpTiles3D_setAmplitude, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAmplitude", js_cocos2dx_CCJumpTiles3D_getAmplitude, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("actionWithJumps", js_cocos2dx_CCJumpTiles3D_actionWithJumps, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCJumpTiles3D_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCJumpTiles3D_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTiledGrid3DAction_prototype,
		js_cocos2dx_CCJumpTiles3D_class,
		dummy_constructor<cocos2d::CCJumpTiles3D>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "JumpTiles3D", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCJumpTiles3D> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCJumpTiles3D_class;
		p->proto = js_cocos2dx_CCJumpTiles3D_prototype;
		p->parentProto = js_cocos2dx_CCTiledGrid3DAction_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCActionTween_class;
JSObject *js_cocos2dx_CCActionTween_prototype;

JSBool js_cocos2dx_CCActionTween_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionTween* cobj = (cocos2d::CCActionTween *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionTween_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionTween* cobj = (cocos2d::CCActionTween *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionTween_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionTween* cobj = (cocos2d::CCActionTween *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		double arg0;
		const char* arg1;
		double arg2;
		double arg3;
		JS_ValueToNumber(cx, argv[0], &arg0);
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		JS_ValueToNumber(cx, argv[2], &arg2);
		JS_ValueToNumber(cx, argv[3], &arg3);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionTween_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCActionTween* cobj = (cocos2d::CCActionTween *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCActionTween_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	const char* arg1;
	double arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCActionTween* ret = cocos2d::CCActionTween::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionTween>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCActionTween_actionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	const char* arg1;
	double arg2;
	double arg3;
	assert(argc >= 4);

	JS_ValueToNumber(cx, argv[0], &arg0);
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToNumber(cx, argv[3], &arg3);
	cocos2d::CCActionTween* ret = cocos2d::CCActionTween::actionWithDuration(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionTween>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCActionTween_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCActionTween(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCActionTween_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCActionTween_class->name = "ActionTween";
	js_cocos2dx_CCActionTween_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCActionTween_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCActionTween_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCActionTween_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCActionTween_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCActionTween_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCActionTween_class->convert = JS_ConvertStub;
	js_cocos2dx_CCActionTween_class->finalize = js_cocos2dx_CCActionTween_finalize;
	js_cocos2dx_CCActionTween_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCActionTween_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCActionTween_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCActionTween_initWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCActionTween_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCActionTween_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithDuration", js_cocos2dx_CCActionTween_actionWithDuration, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCActionTween_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCActionTween_class,
		dummy_constructor<cocos2d::CCActionTween>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ActionTween", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCActionTween> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCActionTween_class;
		p->proto = js_cocos2dx_CCActionTween_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCPointArray_class;
JSObject *js_cocos2dx_CCPointArray_prototype;

JSBool js_cocos2dx_CCPointArray_count(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->count();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_insertControlPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCPoint arg0;
		unsigned int arg1;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cobj->insertControlPoint(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPointArray* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPointArray>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_initWithCapacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithCapacity(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_removeControlPointAtIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->removeControlPointAtIndex(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_setControlPoints(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setControlPoints(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_replaceControlPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCPoint arg0;
		unsigned int arg1;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cobj->replaceControlPoint(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_addControlPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->addControlPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_getControlPointAtIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cocos2d::CCPoint ret = cobj->getControlPointAtIndex(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_reverseInline(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->reverseInline();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_getControlPoints(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCPointArray* cobj = (cocos2d::CCPointArray *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getControlPoints();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCPointArray_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	unsigned int arg0;
	assert(argc >= 1);

	JS_ValueToECMAUint32(cx, argv[0], &arg0);
	cocos2d::CCPointArray* ret = cocos2d::CCPointArray::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPointArray>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCPointArray_arrayWithCapacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	unsigned int arg0;
	assert(argc >= 1);

	JS_ValueToECMAUint32(cx, argv[0], &arg0);
	cocos2d::CCPointArray* ret = cocos2d::CCPointArray::arrayWithCapacity(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPointArray>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCPointArray_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCPointArray* cobj = new cocos2d::CCPointArray();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCPointArray> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCPointArray");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCPointArray_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCPointArray(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCPointArray_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCPointArray_class->name = "PointArray";
	js_cocos2dx_CCPointArray_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCPointArray_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCPointArray_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCPointArray_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCPointArray_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCPointArray_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCPointArray_class->convert = JS_ConvertStub;
	js_cocos2dx_CCPointArray_class->finalize = js_cocos2dx_CCPointArray_finalize;
	js_cocos2dx_CCPointArray_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("count", js_cocos2dx_CCPointArray_count, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("insertControlPoint", js_cocos2dx_CCPointArray_insertControlPoint, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCPointArray_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithCapacity", js_cocos2dx_CCPointArray_initWithCapacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeControlPointAtIndex", js_cocos2dx_CCPointArray_removeControlPointAtIndex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setControlPoints", js_cocos2dx_CCPointArray_setControlPoints, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("replaceControlPoint", js_cocos2dx_CCPointArray_replaceControlPoint, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addControlPoint", js_cocos2dx_CCPointArray_addControlPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getControlPointAtIndex", js_cocos2dx_CCPointArray_getControlPointAtIndex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverseInline", js_cocos2dx_CCPointArray_reverseInline, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getControlPoints", js_cocos2dx_CCPointArray_getControlPoints, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCPointArray_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("arrayWithCapacity", js_cocos2dx_CCPointArray_arrayWithCapacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCPointArray_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCPointArray_class,
		js_cocos2dx_CCPointArray_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "PointArray", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCPointArray> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCPointArray_class;
		p->proto = js_cocos2dx_CCPointArray_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCCardinalSplineTo_class;
JSObject *js_cocos2dx_CCCardinalSplineTo_prototype;

JSBool js_cocos2dx_CCCardinalSplineTo_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		cocos2d::CCPointArray* arg1;
		double arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCPointArray*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_getPoints(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPointArray* ret = cobj->getPoints();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCPointArray>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_updatePosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineTo* cobj = (cocos2d::CCCardinalSplineTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->updatePosition(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineTo_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCCardinalSplineTo* cobj = new cocos2d::CCCardinalSplineTo();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCCardinalSplineTo> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCCardinalSplineTo");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCCardinalSplineTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCCardinalSplineTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCCardinalSplineTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCCardinalSplineTo_class->name = "CardinalSplineTo";
	js_cocos2dx_CCCardinalSplineTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCCardinalSplineTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCCardinalSplineTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCCardinalSplineTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCCardinalSplineTo_class->finalize = js_cocos2dx_CCCardinalSplineTo_finalize;
	js_cocos2dx_CCCardinalSplineTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCCardinalSplineTo_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCCardinalSplineTo_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCCardinalSplineTo_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPoints", js_cocos2dx_CCCardinalSplineTo_getPoints, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCCardinalSplineTo_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updatePosition", js_cocos2dx_CCCardinalSplineTo_updatePosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCCardinalSplineTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCActionInterval_prototype,
		js_cocos2dx_CCCardinalSplineTo_class,
		js_cocos2dx_CCCardinalSplineTo_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "CardinalSplineTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCCardinalSplineTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCCardinalSplineTo_class;
		p->proto = js_cocos2dx_CCCardinalSplineTo_prototype;
		p->parentProto = js_cocos2dx_CCActionInterval_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCCardinalSplineBy_class;
JSObject *js_cocos2dx_CCCardinalSplineBy_prototype;

JSBool js_cocos2dx_CCCardinalSplineBy_startWithTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineBy* cobj = (cocos2d::CCCardinalSplineBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->startWithTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineBy_updatePosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineBy* cobj = (cocos2d::CCCardinalSplineBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->updatePosition(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineBy_reverse(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCardinalSplineBy* cobj = (cocos2d::CCCardinalSplineBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->reverse();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCCardinalSplineBy_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCCardinalSplineBy* cobj = new cocos2d::CCCardinalSplineBy();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCCardinalSplineBy> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCCardinalSplineBy");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCCardinalSplineBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCCardinalSplineBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCCardinalSplineBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCCardinalSplineBy_class->name = "CardinalSplineBy";
	js_cocos2dx_CCCardinalSplineBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCCardinalSplineBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCCardinalSplineBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCCardinalSplineBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCCardinalSplineBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCCardinalSplineBy_class->finalize = js_cocos2dx_CCCardinalSplineBy_finalize;
	js_cocos2dx_CCCardinalSplineBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("startWithTarget", js_cocos2dx_CCCardinalSplineBy_startWithTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updatePosition", js_cocos2dx_CCCardinalSplineBy_updatePosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reverse", js_cocos2dx_CCCardinalSplineBy_reverse, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCCardinalSplineBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCCardinalSplineTo_prototype,
		js_cocos2dx_CCCardinalSplineBy_class,
		js_cocos2dx_CCCardinalSplineBy_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "CardinalSplineBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCCardinalSplineBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCCardinalSplineBy_class;
		p->proto = js_cocos2dx_CCCardinalSplineBy_prototype;
		p->parentProto = js_cocos2dx_CCCardinalSplineTo_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCCatmullRomTo_class;
JSObject *js_cocos2dx_CCCatmullRomTo_prototype;

JSBool js_cocos2dx_CCCatmullRomTo_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCatmullRomTo* cobj = (cocos2d::CCCatmullRomTo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::CCPointArray* arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCPointArray*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}


void js_cocos2dx_CCCatmullRomTo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCCatmullRomTo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCCatmullRomTo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCCatmullRomTo_class->name = "CatmullRomTo";
	js_cocos2dx_CCCatmullRomTo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomTo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomTo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomTo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCCatmullRomTo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCCatmullRomTo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCCatmullRomTo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCCatmullRomTo_class->finalize = js_cocos2dx_CCCatmullRomTo_finalize;
	js_cocos2dx_CCCatmullRomTo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithDuration", js_cocos2dx_CCCatmullRomTo_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCCatmullRomTo_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCCardinalSplineTo_prototype,
		js_cocos2dx_CCCatmullRomTo_class,
		dummy_constructor<cocos2d::CCCatmullRomTo>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "CatmullRomTo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCCatmullRomTo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCCatmullRomTo_class;
		p->proto = js_cocos2dx_CCCatmullRomTo_prototype;
		p->parentProto = js_cocos2dx_CCCardinalSplineTo_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCCatmullRomBy_class;
JSObject *js_cocos2dx_CCCatmullRomBy_prototype;

JSBool js_cocos2dx_CCCatmullRomBy_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCCatmullRomBy* cobj = (cocos2d::CCCatmullRomBy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::CCPointArray* arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCPointArray*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}


void js_cocos2dx_CCCatmullRomBy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCCatmullRomBy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCCatmullRomBy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCCatmullRomBy_class->name = "CatmullRomBy";
	js_cocos2dx_CCCatmullRomBy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomBy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomBy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCCatmullRomBy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCCatmullRomBy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCCatmullRomBy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCCatmullRomBy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCCatmullRomBy_class->finalize = js_cocos2dx_CCCatmullRomBy_finalize;
	js_cocos2dx_CCCatmullRomBy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithDuration", js_cocos2dx_CCCatmullRomBy_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCCatmullRomBy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCCardinalSplineBy_prototype,
		js_cocos2dx_CCCatmullRomBy_class,
		dummy_constructor<cocos2d::CCCatmullRomBy>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "CatmullRomBy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCCatmullRomBy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCCatmullRomBy_class;
		p->proto = js_cocos2dx_CCCatmullRomBy_prototype;
		p->parentProto = js_cocos2dx_CCCardinalSplineBy_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCAtlasNode_class;
JSObject *js_cocos2dx_CCAtlasNode_prototype;

JSBool js_cocos2dx_CCAtlasNode_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_getTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2D* ret = cobj->getTexture();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_setTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextureAtlas* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTextureAtlas*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTextureAtlas(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_getTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTextureAtlas* ret = cobj->getTextureAtlas();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTextureAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_getQuadsToDraw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getQuadsToDraw();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_updateAtlasValues(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateAtlasValues();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_initWithTileFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		const char* arg0;
		unsigned int arg1;
		unsigned int arg2;
		unsigned int arg3;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		bool ret = cobj->initWithTileFile(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_setQuadsToDraw(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAtlasNode* cobj = (cocos2d::CCAtlasNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setQuadsToDraw(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAtlasNode_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	unsigned int arg1;
	unsigned int arg2;
	unsigned int arg3;
	assert(argc >= 4);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	JS_ValueToECMAUint32(cx, argv[2], &arg2);
	JS_ValueToECMAUint32(cx, argv[3], &arg3);
	cocos2d::CCAtlasNode* ret = cocos2d::CCAtlasNode::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAtlasNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAtlasNode_atlasWithTileFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	unsigned int arg1;
	unsigned int arg2;
	unsigned int arg3;
	assert(argc >= 4);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	JS_ValueToECMAUint32(cx, argv[2], &arg2);
	JS_ValueToECMAUint32(cx, argv[3], &arg3);
	cocos2d::CCAtlasNode* ret = cocos2d::CCAtlasNode::atlasWithTileFile(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAtlasNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAtlasNode_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAtlasNode* cobj = new cocos2d::CCAtlasNode();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAtlasNode> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAtlasNode");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAtlasNode_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAtlasNode(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAtlasNode_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAtlasNode_class->name = "AtlasNode";
	js_cocos2dx_CCAtlasNode_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAtlasNode_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAtlasNode_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAtlasNode_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAtlasNode_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAtlasNode_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAtlasNode_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAtlasNode_class->finalize = js_cocos2dx_CCAtlasNode_finalize;
	js_cocos2dx_CCAtlasNode_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setTexture", js_cocos2dx_CCAtlasNode_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCAtlasNode_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCAtlasNode_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCAtlasNode_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTexture", js_cocos2dx_CCAtlasNode_getTexture, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureAtlas", js_cocos2dx_CCAtlasNode_setTextureAtlas, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTextureAtlas", js_cocos2dx_CCAtlasNode_getTextureAtlas, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getQuadsToDraw", js_cocos2dx_CCAtlasNode_getQuadsToDraw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateAtlasValues", js_cocos2dx_CCAtlasNode_updateAtlasValues, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTileFile", js_cocos2dx_CCAtlasNode_initWithTileFile, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCAtlasNode_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCAtlasNode_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setQuadsToDraw", js_cocos2dx_CCAtlasNode_setQuadsToDraw, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCAtlasNode_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("atlasWithTileFile", js_cocos2dx_CCAtlasNode_atlasWithTileFile, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCAtlasNode_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCAtlasNode_class,
		js_cocos2dx_CCAtlasNode_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "AtlasNode", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAtlasNode> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAtlasNode_class;
		p->proto = js_cocos2dx_CCAtlasNode_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSprite_class;
JSObject *js_cocos2dx_CCSprite_prototype;

JSBool js_cocos2dx_CCSprite_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSprite* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->addChild(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addChild(arg0);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setDirtyRecursively(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setDirtyRecursively(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setAnchorPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setAnchorPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setScaleY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScale(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_isFlipY(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isFlipY();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setDisplayFrameWithAnimationName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		int arg1;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->setDisplayFrameWithAnimationName(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setScaleX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_getBatchNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSpriteBatchNode* ret = cobj->getBatchNode();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_getOffsetPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getOffsetPosition();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_isFlipX(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isFlipX();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setVertexZ(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setVertexZ(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_reorderChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->reorderChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setTextureRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSprite* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		JSBool arg1;
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cocos2d::CCSize arg2;
		arg2 = jsval_to_ccsize(cx, argv[2]);
		cobj->setTextureRect(arg0, arg1, arg2);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->setTextureRect(arg0);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_isFrameDisplayed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->isFrameDisplayed(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_getAtlasIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getAtlasIndex();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextureAtlas* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTextureAtlas*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTextureAtlas(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setDisplayFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setDisplayFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setBatchNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteBatchNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteBatchNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setBatchNode(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_initWithSpriteFrameName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithSpriteFrameName(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_initWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSprite* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		bool ret = cobj->initWithTexture(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithTexture(arg0);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		JSBool arg2;
		JS_ValueToBoolean(cx, argv[2], &arg2);
		bool ret = cobj->initWithTexture(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setFlipY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setFlipY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_removeAllChildrenWithCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeAllChildrenWithCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_isDirty(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDirty();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setAtlasIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setAtlasIndex(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setRotation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRotation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setDirty(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setDirty(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_isTextureRectRotated(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isTextureRectRotated();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_sortAllChildren(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->sortAllChildren();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_ignoreAnchorPointForPosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->ignoreAnchorPointForPosition(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_initWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSprite* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		bool ret = cobj->initWithFile(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithFile(arg0);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setFlipX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setFlipX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_updateColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateColor();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_initWithSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithSpriteFrame(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_updateTransform(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateTransform();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setVertexRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->setVertexRect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setSkewX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSkewX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setSkewY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSkewY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_setVisible(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSprite* cobj = (cocos2d::CCSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setVisible(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCSprite* ret = cocos2d::CCSprite::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSprite_spriteWithSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCSpriteFrame* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithSpriteFrame(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSprite_spriteWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithFile(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithFile(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSprite* ret = cocos2d::CCSprite::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCSprite* ret = cocos2d::CCSprite::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_spriteWithSpriteFrameName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithSpriteFrameName(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSprite_createWithSpriteFrameName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCSprite* ret = cocos2d::CCSprite::createWithSpriteFrameName(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSprite_spriteWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithTexture(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::spriteWithTexture(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_createWithSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCSpriteFrame* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCSprite* ret = cocos2d::CCSprite::createWithSpriteFrame(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSprite_createWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCRect arg1;
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::createWithTexture(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCSprite* ret = cocos2d::CCSprite::createWithTexture(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSprite_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCSprite* cobj = new cocos2d::CCSprite();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCSprite> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCSprite");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCSprite_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSprite(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSprite_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSprite_class->name = "Sprite";
	js_cocos2dx_CCSprite_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSprite_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSprite_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSprite_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSprite_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSprite_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSprite_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSprite_class->finalize = js_cocos2dx_CCSprite_finalize;
	js_cocos2dx_CCSprite_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addChild", js_cocos2dx_CCSprite_addChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDirtyRecursively", js_cocos2dx_CCSprite_setDirtyRecursively, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexture", js_cocos2dx_CCSprite_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAnchorPoint", js_cocos2dx_CCSprite_setAnchorPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleY", js_cocos2dx_CCSprite_setScaleY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScale", js_cocos2dx_CCSprite_setScale, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isFlipY", js_cocos2dx_CCSprite_isFlipY, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisplayFrameWithAnimationName", js_cocos2dx_CCSprite_setDisplayFrameWithAnimationName, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleX", js_cocos2dx_CCSprite_setScaleX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getBatchNode", js_cocos2dx_CCSprite_getBatchNode, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOffsetPosition", js_cocos2dx_CCSprite_getOffsetPosition, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isFlipX", js_cocos2dx_CCSprite_isFlipX, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCSprite_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVertexZ", js_cocos2dx_CCSprite_setVertexZ, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reorderChild", js_cocos2dx_CCSprite_reorderChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureRect", js_cocos2dx_CCSprite_setTextureRect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCSprite_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isFrameDisplayed", js_cocos2dx_CCSprite_isFrameDisplayed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAtlasIndex", js_cocos2dx_CCSprite_getAtlasIndex, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureAtlas", js_cocos2dx_CCSprite_setTextureAtlas, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCSprite_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisplayFrame", js_cocos2dx_CCSprite_setDisplayFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBatchNode", js_cocos2dx_CCSprite_setBatchNode, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSpriteFrameName", js_cocos2dx_CCSprite_initWithSpriteFrameName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCSprite_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTexture", js_cocos2dx_CCSprite_initWithTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCSprite_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFlipY", js_cocos2dx_CCSprite_setFlipY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllChildrenWithCleanup", js_cocos2dx_CCSprite_removeAllChildrenWithCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDirty", js_cocos2dx_CCSprite_isDirty, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAtlasIndex", js_cocos2dx_CCSprite_setAtlasIndex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRotation", js_cocos2dx_CCSprite_setRotation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDirty", js_cocos2dx_CCSprite_setDirty, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isTextureRectRotated", js_cocos2dx_CCSprite_isTextureRectRotated, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("sortAllChildren", js_cocos2dx_CCSprite_sortAllChildren, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ignoreAnchorPointForPosition", js_cocos2dx_CCSprite_ignoreAnchorPointForPosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithFile", js_cocos2dx_CCSprite_initWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCSprite_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFlipX", js_cocos2dx_CCSprite_setFlipX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateColor", js_cocos2dx_CCSprite_updateColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSpriteFrame", js_cocos2dx_CCSprite_initWithSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCSprite_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateTransform", js_cocos2dx_CCSprite_updateTransform, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVertexRect", js_cocos2dx_CCSprite_setVertexRect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSkewX", js_cocos2dx_CCSprite_setSkewX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSkewY", js_cocos2dx_CCSprite_setSkewY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVisible", js_cocos2dx_CCSprite_setVisible, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCSprite_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("spriteWithSpriteFrame", js_cocos2dx_CCSprite_spriteWithSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("spriteWithFile", js_cocos2dx_CCSprite_spriteWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCSprite_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("spriteWithSpriteFrameName", js_cocos2dx_CCSprite_spriteWithSpriteFrameName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithSpriteFrameName", js_cocos2dx_CCSprite_createWithSpriteFrameName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("spriteWithTexture", js_cocos2dx_CCSprite_spriteWithTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithSpriteFrame", js_cocos2dx_CCSprite_createWithSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTexture", js_cocos2dx_CCSprite_createWithTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSprite_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCSprite_class,
		js_cocos2dx_CCSprite_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Sprite", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSprite> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSprite_class;
		p->proto = js_cocos2dx_CCSprite_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLabelTTF_class;
JSObject *js_cocos2dx_CCLabelTTF_prototype;

JSBool js_cocos2dx_CCLabelTTF_setFontName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setFontName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_setDimensions(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setDimensions(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getFontSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getFontSize();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getString(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getString();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_setVerticalAlignment(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCVerticalTextAlignment arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setVerticalAlignment(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getFontName(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getFontName();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_setString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_initWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCLabelTTF* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCSize arg3;
		arg3 = jsval_to_ccsize(cx, argv[3]);
		cocos2d::CCTextAlignment arg4;
		JS_ValueToInt32(cx, argv[4], (int32_t *)&arg4);
		bool ret = cobj->initWithString(arg0, arg1, arg2, arg3, arg4);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithString(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 6) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCSize arg3;
		arg3 = jsval_to_ccsize(cx, argv[3]);
		cocos2d::CCTextAlignment arg4;
		JS_ValueToInt32(cx, argv[4], (int32_t *)&arg4);
		cocos2d::CCVerticalTextAlignment arg5;
		JS_ValueToInt32(cx, argv[5], (int32_t *)&arg5);
		bool ret = cobj->initWithString(arg0, arg1, arg2, arg3, arg4, arg5);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getDimensions(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getDimensions();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_setFontSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setFontSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_setHorizontalAlignment(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextAlignment arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setHorizontalAlignment(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getVerticalAlignment(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCVerticalTextAlignment ret = cobj->getVerticalAlignment();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_getHorizontalAlignment(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelTTF* cobj = (cocos2d::CCLabelTTF *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTextAlignment ret = cobj->getHorizontalAlignment();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLabelTTF_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCSize arg3;
		arg3 = jsval_to_ccsize(cx, argv[3]);
		cocos2d::CCTextAlignment arg4;
		JS_ValueToInt32(cx, argv[4], (int32_t *)&arg4);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::create(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 6) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCSize arg3;
		arg3 = jsval_to_ccsize(cx, argv[3]);
		cocos2d::CCTextAlignment arg4;
		JS_ValueToInt32(cx, argv[4], (int32_t *)&arg4);
		cocos2d::CCVerticalTextAlignment arg5;
		JS_ValueToInt32(cx, argv[5], (int32_t *)&arg5);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::create(arg0, arg1, arg2, arg3, arg4, arg5);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_labelWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSize arg1;
		arg1 = jsval_to_ccsize(cx, argv[1]);
		cocos2d::CCTextAlignment arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		const char* arg3;
		std::string arg3_tmp = jsval_to_std_string(cx, argv[3]); arg3 = arg3_tmp.c_str();
		double arg4;
		JS_ValueToNumber(cx, argv[4], &arg4);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::labelWithString(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::labelWithString(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 6) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSize arg1;
		arg1 = jsval_to_ccsize(cx, argv[1]);
		cocos2d::CCTextAlignment arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCVerticalTextAlignment arg3;
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		const char* arg4;
		std::string arg4_tmp = jsval_to_std_string(cx, argv[4]); arg4 = arg4_tmp.c_str();
		double arg5;
		JS_ValueToNumber(cx, argv[5], &arg5);
		cocos2d::CCLabelTTF* ret = cocos2d::CCLabelTTF::labelWithString(arg0, arg1, arg2, arg3, arg4, arg5);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelTTF>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelTTF_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCLabelTTF* cobj = new cocos2d::CCLabelTTF();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCLabelTTF> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCLabelTTF");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCLabelTTF_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLabelTTF(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLabelTTF_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLabelTTF_class->name = "LabelTTF";
	js_cocos2dx_CCLabelTTF_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelTTF_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelTTF_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelTTF_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLabelTTF_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLabelTTF_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLabelTTF_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLabelTTF_class->finalize = js_cocos2dx_CCLabelTTF_finalize;
	js_cocos2dx_CCLabelTTF_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setFontName", js_cocos2dx_CCLabelTTF_setFontName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDimensions", js_cocos2dx_CCLabelTTF_setDimensions, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getFontSize", js_cocos2dx_CCLabelTTF_getFontSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getString", js_cocos2dx_CCLabelTTF_getString, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVerticalAlignment", js_cocos2dx_CCLabelTTF_setVerticalAlignment, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getFontName", js_cocos2dx_CCLabelTTF_getFontName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setString", js_cocos2dx_CCLabelTTF_setString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithString", js_cocos2dx_CCLabelTTF_initWithString, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDimensions", js_cocos2dx_CCLabelTTF_getDimensions, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFontSize", js_cocos2dx_CCLabelTTF_setFontSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setHorizontalAlignment", js_cocos2dx_CCLabelTTF_setHorizontalAlignment, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCLabelTTF_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getVerticalAlignment", js_cocos2dx_CCLabelTTF_getVerticalAlignment, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getHorizontalAlignment", js_cocos2dx_CCLabelTTF_getHorizontalAlignment, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCLabelTTF_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCLabelTTF_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("labelWithString", js_cocos2dx_CCLabelTTF_labelWithString, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLabelTTF_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCSprite_prototype,
		js_cocos2dx_CCLabelTTF_class,
		js_cocos2dx_CCLabelTTF_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "LabelTTF", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLabelTTF> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLabelTTF_class;
		p->proto = js_cocos2dx_CCLabelTTF_prototype;
		p->parentProto = js_cocos2dx_CCSprite_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCDirector_class;
JSObject *js_cocos2dx_CCDirector_prototype;

JSBool js_cocos2dx_CCDirector_pause(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->pause();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setContentScaleFactor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setContentScaleFactor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getContentScaleFactor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getContentScaleFactor();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getWinSizeInPixels(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getWinSizeInPixels();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setKeypadDispatcher(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCKeypadDispatcher* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCKeypadDispatcher*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setKeypadDispatcher(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setActionManager(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionManager* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionManager*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setActionManager(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setAlphaBlending(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setAlphaBlending(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_popToRootScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->popToRootScene();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getNotificationNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getNotificationNode();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getWinSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getWinSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_end(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->end();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_isSendCleanupToScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isSendCleanupToScene();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getVisibleOrigin(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getVisibleOrigin();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_mainLoop(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->mainLoop();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setDepthTest(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setDepthTest(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getSecondsPerFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSecondsPerFrame();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_convertToUI(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToUI(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setAccelerometer(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCAccelerometer* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAccelerometer*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setAccelerometer(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setScheduler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCScheduler* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCScheduler*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setScheduler(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_startAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->startAnimation();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getRunningScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCScene* ret = cobj->getRunningScene();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScene>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_stopAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stopAnimation();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setGLDefaultValues(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->setGLDefaultValues();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_resume(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->resume();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setTouchDispatcher(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTouchDispatcher* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouchDispatcher*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTouchDispatcher(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_isNextDeltaTimeZero(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isNextDeltaTimeZero();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setOpenGLView(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCEGLView* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCEGLView*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setOpenGLView(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_convertToGL(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->convertToGL(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_purgeCachedData(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->purgeCachedData();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getTotalFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getTotalFrames();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_runWithScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCScene* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->runWithScene(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setNotificationNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setNotificationNode(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_drawScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->drawScene();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_popScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->popScene();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_isDisplayStats(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isDisplayStats();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setProjection(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccDirectorProjection arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setProjection(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getZEye(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getZEye();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setNextDeltaTimeZero(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setNextDeltaTimeZero(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getVisibleSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getVisibleSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_pushScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCScene* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->pushScene(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getClassTypeInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		long ret = cobj->getClassTypeInfo();
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR long;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getAnimationInterval(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		double ret = cobj->getAnimationInterval();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_isPaused(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isPaused();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setDisplayStats(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setDisplayStats(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_replaceScene(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCScene* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->replaceScene(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_setAnimationInterval(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAnimationInterval(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_getActionManager(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCDirector* cobj = (cocos2d::CCDirector *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionManager* ret = cobj->getActionManager();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionManager>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCDirector_sharedDirector(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCDirector* ret = cocos2d::CCDirector::sharedDirector();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDirector>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCDirector_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCDirector(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCDirector_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCDirector_class->name = "Director";
	js_cocos2dx_CCDirector_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCDirector_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCDirector_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCDirector_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCDirector_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCDirector_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCDirector_class->convert = JS_ConvertStub;
	js_cocos2dx_CCDirector_class->finalize = js_cocos2dx_CCDirector_finalize;
	js_cocos2dx_CCDirector_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("pause", js_cocos2dx_CCDirector_pause, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setContentScaleFactor", js_cocos2dx_CCDirector_setContentScaleFactor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getContentScaleFactor", js_cocos2dx_CCDirector_getContentScaleFactor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getWinSizeInPixels", js_cocos2dx_CCDirector_getWinSizeInPixels, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setKeypadDispatcher", js_cocos2dx_CCDirector_setKeypadDispatcher, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setActionManager", js_cocos2dx_CCDirector_setActionManager, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAlphaBlending", js_cocos2dx_CCDirector_setAlphaBlending, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("popToRootScene", js_cocos2dx_CCDirector_popToRootScene, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getNotificationNode", js_cocos2dx_CCDirector_getNotificationNode, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getWinSize", js_cocos2dx_CCDirector_getWinSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("end", js_cocos2dx_CCDirector_end, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isSendCleanupToScene", js_cocos2dx_CCDirector_isSendCleanupToScene, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getVisibleOrigin", js_cocos2dx_CCDirector_getVisibleOrigin, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("mainLoop", js_cocos2dx_CCDirector_mainLoop, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDepthTest", js_cocos2dx_CCDirector_setDepthTest, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSecondsPerFrame", js_cocos2dx_CCDirector_getSecondsPerFrame, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToUI", js_cocos2dx_CCDirector_convertToUI, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAccelerometer", js_cocos2dx_CCDirector_setAccelerometer, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCDirector_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScheduler", js_cocos2dx_CCDirector_setScheduler, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("startAnimation", js_cocos2dx_CCDirector_startAnimation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRunningScene", js_cocos2dx_CCDirector_getRunningScene, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopAnimation", js_cocos2dx_CCDirector_stopAnimation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setGLDefaultValues", js_cocos2dx_CCDirector_setGLDefaultValues, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resume", js_cocos2dx_CCDirector_resume, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTouchDispatcher", js_cocos2dx_CCDirector_setTouchDispatcher, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isNextDeltaTimeZero", js_cocos2dx_CCDirector_isNextDeltaTimeZero, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpenGLView", js_cocos2dx_CCDirector_setOpenGLView, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("convertToGL", js_cocos2dx_CCDirector_convertToGL, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("purgeCachedData", js_cocos2dx_CCDirector_purgeCachedData, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTotalFrames", js_cocos2dx_CCDirector_getTotalFrames, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("runWithScene", js_cocos2dx_CCDirector_runWithScene, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setNotificationNode", js_cocos2dx_CCDirector_setNotificationNode, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("drawScene", js_cocos2dx_CCDirector_drawScene, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("popScene", js_cocos2dx_CCDirector_popScene, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isDisplayStats", js_cocos2dx_CCDirector_isDisplayStats, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setProjection", js_cocos2dx_CCDirector_setProjection, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getZEye", js_cocos2dx_CCDirector_getZEye, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setNextDeltaTimeZero", js_cocos2dx_CCDirector_setNextDeltaTimeZero, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getVisibleSize", js_cocos2dx_CCDirector_getVisibleSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pushScene", js_cocos2dx_CCDirector_pushScene, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getClassTypeInfo", js_cocos2dx_CCDirector_getClassTypeInfo, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAnimationInterval", js_cocos2dx_CCDirector_getAnimationInterval, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isPaused", js_cocos2dx_CCDirector_isPaused, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisplayStats", js_cocos2dx_CCDirector_setDisplayStats, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("replaceScene", js_cocos2dx_CCDirector_replaceScene, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAnimationInterval", js_cocos2dx_CCDirector_setAnimationInterval, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getActionManager", js_cocos2dx_CCDirector_getActionManager, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("getInstance", js_cocos2dx_CCDirector_sharedDirector, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCDirector_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCDirector_class,
		empty_constructor, 0,
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Director", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCDirector> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCDirector_class;
		p->proto = js_cocos2dx_CCDirector_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLabelAtlas_class;
JSObject *js_cocos2dx_CCLabelAtlas_prototype;

JSBool js_cocos2dx_CCLabelAtlas_setString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelAtlas* cobj = (cocos2d::CCLabelAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_initWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCLabelAtlas* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCLabelAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		bool ret = cobj->initWithString(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		unsigned int arg2;
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		unsigned int arg4;
		JS_ValueToECMAUint32(cx, argv[4], &arg4);
		bool ret = cobj->initWithString(arg0, arg1, arg2, arg3, arg4);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_updateAtlasValues(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelAtlas* cobj = (cocos2d::CCLabelAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateAtlasValues();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_getString(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelAtlas* cobj = (cocos2d::CCLabelAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getString();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cocos2d::CCLabelAtlas* ret = cocos2d::CCLabelAtlas::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		unsigned int arg2;
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		unsigned int arg4;
		JS_ValueToECMAUint32(cx, argv[4], &arg4);
		cocos2d::CCLabelAtlas* ret = cocos2d::CCLabelAtlas::create(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_labelWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cocos2d::CCLabelAtlas* ret = cocos2d::CCLabelAtlas::labelWithString(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		unsigned int arg2;
		JS_ValueToECMAUint32(cx, argv[2], &arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		unsigned int arg4;
		JS_ValueToECMAUint32(cx, argv[4], &arg4);
		cocos2d::CCLabelAtlas* ret = cocos2d::CCLabelAtlas::labelWithString(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelAtlas_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCLabelAtlas* cobj = new cocos2d::CCLabelAtlas();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCLabelAtlas> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCLabelAtlas");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCLabelAtlas_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLabelAtlas(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLabelAtlas_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLabelAtlas_class->name = "LabelAtlas";
	js_cocos2dx_CCLabelAtlas_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelAtlas_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelAtlas_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelAtlas_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLabelAtlas_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLabelAtlas_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLabelAtlas_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLabelAtlas_class->finalize = js_cocos2dx_CCLabelAtlas_finalize;
	js_cocos2dx_CCLabelAtlas_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setString", js_cocos2dx_CCLabelAtlas_setString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithString", js_cocos2dx_CCLabelAtlas_initWithString, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateAtlasValues", js_cocos2dx_CCLabelAtlas_updateAtlasValues, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getString", js_cocos2dx_CCLabelAtlas_getString, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCLabelAtlas_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("labelWithString", js_cocos2dx_CCLabelAtlas_labelWithString, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLabelAtlas_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCAtlasNode_prototype,
		js_cocos2dx_CCLabelAtlas_class,
		js_cocos2dx_CCLabelAtlas_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "LabelAtlas", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLabelAtlas> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLabelAtlas_class;
		p->proto = js_cocos2dx_CCLabelAtlas_prototype;
		p->parentProto = js_cocos2dx_CCAtlasNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSpriteBatchNode_class;
JSObject *js_cocos2dx_CCSpriteBatchNode_prototype;

JSBool js_cocos2dx_CCSpriteBatchNode_appendChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->appendChild(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_reorderBatch(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->reorderBatch(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSpriteBatchNode* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->addChild(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addChild(arg0);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_visit(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->visit();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_removeChildAtIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		unsigned int arg0;
		JSBool arg1;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChildAtIndex(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_removeSpriteFromAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeSpriteFromAtlas(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_atlasIndexForChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSprite* arg0;
		int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		unsigned int ret = cobj->atlasIndexForChild(arg0, arg1);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_getTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2D* ret = cobj->getTexture();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_increaseAtlasCapacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->increaseAtlasCapacity();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_insertChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSprite* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cobj->insertChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_lowestAtlasIndexInChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int ret = cobj->lowestAtlasIndexInChild(arg0);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_initWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithTexture(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_setTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextureAtlas* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTextureAtlas*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTextureAtlas(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_removeAllChildrenWithCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeAllChildrenWithCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_sortAllChildren(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->sortAllChildren();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_reorderChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->reorderChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_initWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		unsigned int arg1;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithFile(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_rebuildIndexInOrder(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSprite* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		unsigned int ret = cobj->rebuildIndexInOrder(arg0, arg1);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_getTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTextureAtlas* ret = cobj->getTextureAtlas();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTextureAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_getDescendants(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getDescendants();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_highestAtlasIndexInChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteBatchNode* cobj = (cocos2d::CCSpriteBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int ret = cobj->highestAtlasIndexInChild(arg0);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_batchNodeWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTexture2D* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::batchNodeWithTexture(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSpriteBatchNode_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		unsigned int arg1;
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_createWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::createWithTexture(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int arg1;
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::createWithTexture(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteBatchNode_batchNodeWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCSpriteBatchNode* ret = cocos2d::CCSpriteBatchNode::batchNodeWithFile(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCSpriteBatchNode_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSpriteBatchNode(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSpriteBatchNode_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSpriteBatchNode_class->name = "SpriteBatchNode";
	js_cocos2dx_CCSpriteBatchNode_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteBatchNode_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteBatchNode_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteBatchNode_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSpriteBatchNode_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSpriteBatchNode_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSpriteBatchNode_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSpriteBatchNode_class->finalize = js_cocos2dx_CCSpriteBatchNode_finalize;
	js_cocos2dx_CCSpriteBatchNode_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("appendChild", js_cocos2dx_CCSpriteBatchNode_appendChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reorderBatch", js_cocos2dx_CCSpriteBatchNode_reorderBatch, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addChild", js_cocos2dx_CCSpriteBatchNode_addChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("visit", js_cocos2dx_CCSpriteBatchNode_visit, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexture", js_cocos2dx_CCSpriteBatchNode_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChildAtIndex", js_cocos2dx_CCSpriteBatchNode_removeChildAtIndex, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeSpriteFromAtlas", js_cocos2dx_CCSpriteBatchNode_removeSpriteFromAtlas, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("atlasIndexForChild", js_cocos2dx_CCSpriteBatchNode_atlasIndexForChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTexture", js_cocos2dx_CCSpriteBatchNode_getTexture, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("increaseAtlasCapacity", js_cocos2dx_CCSpriteBatchNode_increaseAtlasCapacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCSpriteBatchNode_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("insertChild", js_cocos2dx_CCSpriteBatchNode_insertChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("lowestAtlasIndexInChild", js_cocos2dx_CCSpriteBatchNode_lowestAtlasIndexInChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCSpriteBatchNode_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTexture", js_cocos2dx_CCSpriteBatchNode_initWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureAtlas", js_cocos2dx_CCSpriteBatchNode_setTextureAtlas, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllChildrenWithCleanup", js_cocos2dx_CCSpriteBatchNode_removeAllChildrenWithCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("sortAllChildren", js_cocos2dx_CCSpriteBatchNode_sortAllChildren, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reorderChild", js_cocos2dx_CCSpriteBatchNode_reorderChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithFile", js_cocos2dx_CCSpriteBatchNode_initWithFile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("rebuildIndexInOrder", js_cocos2dx_CCSpriteBatchNode_rebuildIndexInOrder, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTextureAtlas", js_cocos2dx_CCSpriteBatchNode_getTextureAtlas, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDescendants", js_cocos2dx_CCSpriteBatchNode_getDescendants, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCSpriteBatchNode_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("highestAtlasIndexInChild", js_cocos2dx_CCSpriteBatchNode_highestAtlasIndexInChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("batchNodeWithTexture", js_cocos2dx_CCSpriteBatchNode_batchNodeWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCSpriteBatchNode_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTexture", js_cocos2dx_CCSpriteBatchNode_createWithTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("batchNodeWithFile", js_cocos2dx_CCSpriteBatchNode_batchNodeWithFile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSpriteBatchNode_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCSpriteBatchNode_class,
		dummy_constructor<cocos2d::CCSpriteBatchNode>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "SpriteBatchNode", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSpriteBatchNode> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSpriteBatchNode_class;
		p->proto = js_cocos2dx_CCSpriteBatchNode_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLabelBMFont_class;
JSObject *js_cocos2dx_CCLabelBMFont_prototype;

JSBool js_cocos2dx_CCLabelBMFont_setAnchorPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setAnchorPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_createFontChars(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->createFontChars();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_getString(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getString();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScale(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_getFntFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getFntFile();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_updateLabel(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateLabel();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setWidth(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setWidth(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCLabelBMFont* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JSBool arg1;
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->setString(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setString(arg0);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_initWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		const char* arg0;
		const char* arg1;
		double arg2;
		cocos2d::CCTextAlignment arg3;
		cocos2d::CCPoint arg4;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		JS_ValueToNumber(cx, argv[2], &arg2);
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		arg4 = jsval_to_ccpoint(cx, argv[4]);
		bool ret = cobj->initWithString(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 5);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setFntFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setFntFile(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setLineBreakWithoutSpace(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setLineBreakWithoutSpace(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setScaleY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setScaleX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_updateString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->updateString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setCString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setCString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_setAlignment(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLabelBMFont* cobj = (cocos2d::CCLabelBMFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextAlignment arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setAlignment(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_purgeCachedData(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLabelBMFont::purgeCachedData();
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLabelBMFont_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLabelBMFont_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 4) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCTextAlignment arg3;
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::create(arg0, arg1, arg2, arg3);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 5) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCTextAlignment arg3;
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		cocos2d::CCPoint arg4;
		arg4 = jsval_to_ccpoint(cx, argv[4]);
		cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::create(arg0, arg1, arg2, arg3, arg4);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLabelBMFont_labelWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	double arg2;
	cocos2d::CCTextAlignment arg3;
	cocos2d::CCPoint arg4;
	assert(argc >= 5);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToNumber(cx, argv[2], &arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	arg4 = jsval_to_ccpoint(cx, argv[4]);
	cocos2d::CCLabelBMFont* ret = cocos2d::CCLabelBMFont::labelWithString(arg0, arg1, arg2, arg3, arg4);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLabelBMFont>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLabelBMFont_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCLabelBMFont* cobj = new cocos2d::CCLabelBMFont();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCLabelBMFont> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCLabelBMFont");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCLabelBMFont_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLabelBMFont(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLabelBMFont_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLabelBMFont_class->name = "LabelBMFont";
	js_cocos2dx_CCLabelBMFont_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelBMFont_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelBMFont_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLabelBMFont_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLabelBMFont_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLabelBMFont_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLabelBMFont_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLabelBMFont_class->finalize = js_cocos2dx_CCLabelBMFont_finalize;
	js_cocos2dx_CCLabelBMFont_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setAnchorPoint", js_cocos2dx_CCLabelBMFont_setAnchorPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createFontChars", js_cocos2dx_CCLabelBMFont_createFontChars, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getString", js_cocos2dx_CCLabelBMFont_getString, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScale", js_cocos2dx_CCLabelBMFont_setScale, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCLabelBMFont_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getFntFile", js_cocos2dx_CCLabelBMFont_getFntFile, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateLabel", js_cocos2dx_CCLabelBMFont_updateLabel, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setWidth", js_cocos2dx_CCLabelBMFont_setWidth, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setString", js_cocos2dx_CCLabelBMFont_setString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithString", js_cocos2dx_CCLabelBMFont_initWithString, 5, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCLabelBMFont_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFntFile", js_cocos2dx_CCLabelBMFont_setFntFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCLabelBMFont_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLineBreakWithoutSpace", js_cocos2dx_CCLabelBMFont_setLineBreakWithoutSpace, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleY", js_cocos2dx_CCLabelBMFont_setScaleY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleX", js_cocos2dx_CCLabelBMFont_setScaleX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCLabelBMFont_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateString", js_cocos2dx_CCLabelBMFont_updateString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCLabelBMFont_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setCString", js_cocos2dx_CCLabelBMFont_setCString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAlignment", js_cocos2dx_CCLabelBMFont_setAlignment, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("purgeCachedData", js_cocos2dx_CCLabelBMFont_purgeCachedData, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("node", js_cocos2dx_CCLabelBMFont_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCLabelBMFont_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("labelWithString", js_cocos2dx_CCLabelBMFont_labelWithString, 5, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLabelBMFont_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCSpriteBatchNode_prototype,
		js_cocos2dx_CCLabelBMFont_class,
		js_cocos2dx_CCLabelBMFont_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "LabelBMFont", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLabelBMFont> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLabelBMFont_class;
		p->proto = js_cocos2dx_CCLabelBMFont_prototype;
		p->parentProto = js_cocos2dx_CCSpriteBatchNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLayer_class;
JSObject *js_cocos2dx_CCLayer_prototype;

JSBool js_cocos2dx_CCLayer_unregisterScriptTouchHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unregisterScriptTouchHandler();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_getScriptHandlerEntry(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTouchScriptHandlerEntry* ret = cobj->getScriptHandlerEntry();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTouchScriptHandlerEntry>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchBegan(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->ccTouchBegan(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setAccelerometerInterval(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAccelerometerInterval(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchesCancelled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSet* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchesCancelled(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchesMoved(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSet* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchesMoved(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_getTouchMode(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getTouchMode();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setAccelerometerEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setAccelerometerEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_isTouchEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isTouchEnabled();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchMoved(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchMoved(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setTouchEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setTouchEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_isKeypadEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isKeypadEnabled();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchesEnded(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSet* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchesEnded(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setTouchMode(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccTouchesMode arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setTouchMode(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_isAccelerometerEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isAccelerometerEnabled();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchEnded(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchEnded(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_registerScriptTouchHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		int arg0;
		JSBool arg1;
		int arg2;
		JSBool arg3;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		JS_ValueToBoolean(cx, argv[3], &arg3);
		cobj->registerScriptTouchHandler(arg0, arg1, arg2, arg3);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchCancelled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchCancelled(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_ccTouchesBegan(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSet* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchesBegan(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setTouchPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setTouchPriority(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_getTouchPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getTouchPriority();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_setKeypadEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setKeypadEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_registerWithTouchDispatcher(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayer* cobj = (cocos2d::CCLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->registerWithTouchDispatcher();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayer_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLayer* ret = cocos2d::CCLayer::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLayer_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLayer* ret = cocos2d::CCLayer::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLayer_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCLayer* cobj = new cocos2d::CCLayer();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCLayer> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCLayer");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCLayer_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLayer(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLayer_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLayer_class->name = "Layer";
	js_cocos2dx_CCLayer_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLayer_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLayer_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLayer_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLayer_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLayer_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLayer_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLayer_class->finalize = js_cocos2dx_CCLayer_finalize;
	js_cocos2dx_CCLayer_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("unregisterScriptTouchHandler", js_cocos2dx_CCLayer_unregisterScriptTouchHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScriptHandlerEntry", js_cocos2dx_CCLayer_getScriptHandlerEntry, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchBegan", js_cocos2dx_CCLayer_ccTouchBegan, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAccelerometerInterval", js_cocos2dx_CCLayer_setAccelerometerInterval, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchesCancelled", js_cocos2dx_CCLayer_ccTouchesCancelled, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchesMoved", js_cocos2dx_CCLayer_ccTouchesMoved, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTouchMode", js_cocos2dx_CCLayer_getTouchMode, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAccelerometerEnabled", js_cocos2dx_CCLayer_setAccelerometerEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCLayer_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isTouchEnabled", js_cocos2dx_CCLayer_isTouchEnabled, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchMoved", js_cocos2dx_CCLayer_ccTouchMoved, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTouchEnabled", js_cocos2dx_CCLayer_setTouchEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isKeypadEnabled", js_cocos2dx_CCLayer_isKeypadEnabled, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchesEnded", js_cocos2dx_CCLayer_ccTouchesEnded, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTouchMode", js_cocos2dx_CCLayer_setTouchMode, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isAccelerometerEnabled", js_cocos2dx_CCLayer_isAccelerometerEnabled, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchEnded", js_cocos2dx_CCLayer_ccTouchEnded, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("registerScriptTouchHandler", js_cocos2dx_CCLayer_registerScriptTouchHandler, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchCancelled", js_cocos2dx_CCLayer_ccTouchCancelled, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchesBegan", js_cocos2dx_CCLayer_ccTouchesBegan, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTouchPriority", js_cocos2dx_CCLayer_setTouchPriority, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTouchPriority", js_cocos2dx_CCLayer_getTouchPriority, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setKeypadEnabled", js_cocos2dx_CCLayer_setKeypadEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("registerWithTouchDispatcher", js_cocos2dx_CCLayer_registerWithTouchDispatcher, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCLayer_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCLayer_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLayer_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCLayer_class,
		js_cocos2dx_CCLayer_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Layer", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLayer> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLayer_class;
		p->proto = js_cocos2dx_CCLayer_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLayerColor_class;
JSObject *js_cocos2dx_CCLayerColor_prototype;

JSBool js_cocos2dx_CCLayerColor_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_changeWidthAndHeight(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		double arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		cobj->changeWidthAndHeight(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_initWithColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCLayerColor* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		bool ret = cobj->initWithColor(arg0);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		bool ret = cobj->initWithColor(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_changeWidth(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->changeWidth(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_setContentSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setContentSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_changeHeight(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerColor* cobj = (cocos2d::CCLayerColor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->changeHeight(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLayerColor_layerWithColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 1) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::layerWithColor(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::layerWithColor(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::CCLayerColor* ret = cocos2d::CCLayerColor::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerColor>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerColor_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCLayerColor* cobj = new cocos2d::CCLayerColor();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCLayerColor> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCLayerColor");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCLayerColor_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLayerColor(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLayerColor_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLayerColor_class->name = "LayerColor";
	js_cocos2dx_CCLayerColor_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerColor_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerColor_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerColor_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLayerColor_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLayerColor_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLayerColor_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLayerColor_class->finalize = js_cocos2dx_CCLayerColor_finalize;
	js_cocos2dx_CCLayerColor_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("draw", js_cocos2dx_CCLayerColor_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCLayerColor_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCLayerColor_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("changeWidthAndHeight", js_cocos2dx_CCLayerColor_changeWidthAndHeight, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCLayerColor_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCLayerColor_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithColor", js_cocos2dx_CCLayerColor_initWithColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("changeWidth", js_cocos2dx_CCLayerColor_changeWidth, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCLayerColor_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setContentSize", js_cocos2dx_CCLayerColor_setContentSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("changeHeight", js_cocos2dx_CCLayerColor_changeHeight, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCLayerColor_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("layerWithColor", js_cocos2dx_CCLayerColor_layerWithColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCLayerColor_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLayerColor_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCLayer_prototype,
		js_cocos2dx_CCLayerColor_class,
		js_cocos2dx_CCLayerColor_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "LayerColor", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLayerColor> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLayerColor_class;
		p->proto = js_cocos2dx_CCLayerColor_prototype;
		p->parentProto = js_cocos2dx_CCLayer_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCLayerGradient_class;
JSObject *js_cocos2dx_CCLayerGradient_prototype;

JSBool js_cocos2dx_CCLayerGradient_getStartColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getStartColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_isCompressedInterpolation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isCompressedInterpolation();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_getStartOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getStartOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setVector(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setVector(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setStartOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setStartOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setCompressedInterpolation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setCompressedInterpolation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setEndOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setEndOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_getVector(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getVector();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_initWithColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCLayerGradient* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		bool ret = cobj->initWithColor(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		cocos2d::CCPoint arg2;
		arg2 = jsval_to_ccpoint(cx, argv[2]);
		bool ret = cobj->initWithColor(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setEndColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setEndColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_getEndColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getEndColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_getEndOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getEndOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_setStartColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCLayerGradient* cobj = (cocos2d::CCLayerGradient *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setStartColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCLayerGradient_layerWithColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		cocos2d::CCPoint arg2;
		arg2 = jsval_to_ccpoint(cx, argv[2]);
		cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::layerWithColor(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::layerWithColor(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCLayerGradient_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		cocos2d::CCPoint arg2;
		arg2 = jsval_to_ccpoint(cx, argv[2]);
		cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		cocos2d::ccColor4B arg0;
		arg0 = jsval_to_cccolor4b(cx, argv[0]);
		cocos2d::ccColor4B arg1;
		arg1 = jsval_to_cccolor4b(cx, argv[1]);
		cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 0) {
		cocos2d::CCLayerGradient* ret = cocos2d::CCLayerGradient::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCLayerGradient>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}


void js_cocos2dx_CCLayerGradient_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCLayerGradient(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCLayerGradient_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCLayerGradient_class->name = "LayerGradient";
	js_cocos2dx_CCLayerGradient_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerGradient_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerGradient_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCLayerGradient_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCLayerGradient_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCLayerGradient_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCLayerGradient_class->convert = JS_ConvertStub;
	js_cocos2dx_CCLayerGradient_class->finalize = js_cocos2dx_CCLayerGradient_finalize;
	js_cocos2dx_CCLayerGradient_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getStartColor", js_cocos2dx_CCLayerGradient_getStartColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isCompressedInterpolation", js_cocos2dx_CCLayerGradient_isCompressedInterpolation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartOpacity", js_cocos2dx_CCLayerGradient_getStartOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setVector", js_cocos2dx_CCLayerGradient_setVector, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartOpacity", js_cocos2dx_CCLayerGradient_setStartOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setCompressedInterpolation", js_cocos2dx_CCLayerGradient_setCompressedInterpolation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndOpacity", js_cocos2dx_CCLayerGradient_setEndOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getVector", js_cocos2dx_CCLayerGradient_getVector, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCLayerGradient_initWithColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndColor", js_cocos2dx_CCLayerGradient_setEndColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndColor", js_cocos2dx_CCLayerGradient_getEndColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndOpacity", js_cocos2dx_CCLayerGradient_getEndOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartColor", js_cocos2dx_CCLayerGradient_setStartColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCLayerGradient_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("layerWithColor", js_cocos2dx_CCLayerGradient_layerWithColor, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCLayerGradient_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCLayerGradient_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCLayerColor_prototype,
		js_cocos2dx_CCLayerGradient_class,
		dummy_constructor<cocos2d::CCLayerGradient>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "LayerGradient", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCLayerGradient> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCLayerGradient_class;
		p->proto = js_cocos2dx_CCLayerGradient_prototype;
		p->parentProto = js_cocos2dx_CCLayerColor_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCScene_class;
JSObject *js_cocos2dx_CCScene_prototype;

JSBool js_cocos2dx_CCScene_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScene* cobj = (cocos2d::CCScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScene_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCScene* ret = cocos2d::CCScene::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScene>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCScene_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCScene* ret = cocos2d::CCScene::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCScene>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCScene_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCScene* cobj = new cocos2d::CCScene();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCScene> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCScene");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCScene_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCScene(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCScene_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCScene_class->name = "Scene";
	js_cocos2dx_CCScene_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCScene_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCScene_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCScene_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCScene_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCScene_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCScene_class->convert = JS_ConvertStub;
	js_cocos2dx_CCScene_class->finalize = js_cocos2dx_CCScene_finalize;
	js_cocos2dx_CCScene_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCScene_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCScene_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCScene_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCScene_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCScene_class,
		js_cocos2dx_CCScene_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Scene", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCScene> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCScene_class;
		p->proto = js_cocos2dx_CCScene_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionEaseScene_class;
JSObject *js_cocos2dx_CCTransitionEaseScene_prototype;

JSBool js_cocos2dx_CCTransitionEaseScene_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionEaseScene* cobj = (cocos2d::CCTransitionEaseScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}


void js_cocos2dx_CCTransitionEaseScene_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionEaseScene(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionEaseScene_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionEaseScene_class->name = "TransitionEaseScene";
	js_cocos2dx_CCTransitionEaseScene_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionEaseScene_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionEaseScene_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionEaseScene_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionEaseScene_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionEaseScene_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionEaseScene_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionEaseScene_class->finalize = js_cocos2dx_CCTransitionEaseScene_finalize;
	js_cocos2dx_CCTransitionEaseScene_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionEaseScene_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTransitionEaseScene_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTransitionEaseScene_class,
		empty_constructor, 0,
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionEaseScene", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionEaseScene> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionEaseScene_class;
		p->proto = js_cocos2dx_CCTransitionEaseScene_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionScene_class;
JSObject *js_cocos2dx_CCTransitionScene_prototype;

JSBool js_cocos2dx_CCTransitionScene_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionScene* cobj = (cocos2d::CCTransitionScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionScene_finish(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionScene* cobj = (cocos2d::CCTransitionScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->finish();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionScene_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionScene* cobj = (cocos2d::CCTransitionScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		cocos2d::CCScene* arg1;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionScene_cleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionScene* cobj = (cocos2d::CCTransitionScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->cleanup();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionScene_hideOutShowIn(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionScene* cobj = (cocos2d::CCTransitionScene *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->hideOutShowIn();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionScene_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionScene* ret = cocos2d::CCTransitionScene::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionScene>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionScene_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionScene* ret = cocos2d::CCTransitionScene::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionScene>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionScene_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionScene* cobj = new cocos2d::CCTransitionScene();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionScene> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionScene");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionScene_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionScene(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionScene_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionScene_class->name = "TransitionScene";
	js_cocos2dx_CCTransitionScene_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionScene_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionScene_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionScene_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionScene_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionScene_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionScene_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionScene_class->finalize = js_cocos2dx_CCTransitionScene_finalize;
	js_cocos2dx_CCTransitionScene_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("draw", js_cocos2dx_CCTransitionScene_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("finish", js_cocos2dx_CCTransitionScene_finish, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCTransitionScene_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("cleanup", js_cocos2dx_CCTransitionScene_cleanup, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("hideOutShowIn", js_cocos2dx_CCTransitionScene_hideOutShowIn, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionScene_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionScene_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionScene_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCScene_prototype,
		js_cocos2dx_CCTransitionScene_class,
		js_cocos2dx_CCTransitionScene_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionScene", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionScene> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionScene_class;
		p->proto = js_cocos2dx_CCTransitionScene_prototype;
		p->parentProto = js_cocos2dx_CCScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSceneOriented_class;
JSObject *js_cocos2dx_CCTransitionSceneOriented_prototype;

JSBool js_cocos2dx_CCTransitionSceneOriented_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSceneOriented* cobj = (cocos2d::CCTransitionSceneOriented *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		cocos2d::CCScene* arg1;
		cocos2d::tOrientation arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSceneOriented_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionSceneOriented* ret = cocos2d::CCTransitionSceneOriented::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSceneOriented>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSceneOriented_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionSceneOriented* ret = cocos2d::CCTransitionSceneOriented::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSceneOriented>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSceneOriented_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSceneOriented* cobj = new cocos2d::CCTransitionSceneOriented();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSceneOriented> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSceneOriented");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSceneOriented_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSceneOriented(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSceneOriented_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSceneOriented_class->name = "TransitionSceneOriented";
	js_cocos2dx_CCTransitionSceneOriented_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSceneOriented_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSceneOriented_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSceneOriented_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSceneOriented_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSceneOriented_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSceneOriented_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSceneOriented_class->finalize = js_cocos2dx_CCTransitionSceneOriented_finalize;
	js_cocos2dx_CCTransitionSceneOriented_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithDuration", js_cocos2dx_CCTransitionSceneOriented_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSceneOriented_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSceneOriented_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSceneOriented_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionSceneOriented_class,
		js_cocos2dx_CCTransitionSceneOriented_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSceneOriented", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSceneOriented> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSceneOriented_class;
		p->proto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionRotoZoom_class;
JSObject *js_cocos2dx_CCTransitionRotoZoom_prototype;

JSBool js_cocos2dx_CCTransitionRotoZoom_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionRotoZoom* ret = cocos2d::CCTransitionRotoZoom::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionRotoZoom>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionRotoZoom_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionRotoZoom* ret = cocos2d::CCTransitionRotoZoom::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionRotoZoom>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionRotoZoom_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionRotoZoom* cobj = new cocos2d::CCTransitionRotoZoom();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionRotoZoom> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionRotoZoom");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionRotoZoom_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionRotoZoom(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionRotoZoom_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionRotoZoom_class->name = "TransitionRotoZoom";
	js_cocos2dx_CCTransitionRotoZoom_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionRotoZoom_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionRotoZoom_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionRotoZoom_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionRotoZoom_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionRotoZoom_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionRotoZoom_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionRotoZoom_class->finalize = js_cocos2dx_CCTransitionRotoZoom_finalize;
	js_cocos2dx_CCTransitionRotoZoom_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionRotoZoom_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionRotoZoom_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionRotoZoom_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionRotoZoom_class,
		js_cocos2dx_CCTransitionRotoZoom_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionRotoZoom", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionRotoZoom> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionRotoZoom_class;
		p->proto = js_cocos2dx_CCTransitionRotoZoom_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionJumpZoom_class;
JSObject *js_cocos2dx_CCTransitionJumpZoom_prototype;

JSBool js_cocos2dx_CCTransitionJumpZoom_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionJumpZoom* ret = cocos2d::CCTransitionJumpZoom::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionJumpZoom>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionJumpZoom_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionJumpZoom* ret = cocos2d::CCTransitionJumpZoom::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionJumpZoom>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionJumpZoom_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionJumpZoom* cobj = new cocos2d::CCTransitionJumpZoom();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionJumpZoom> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionJumpZoom");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionJumpZoom_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionJumpZoom(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionJumpZoom_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionJumpZoom_class->name = "TransitionJumpZoom";
	js_cocos2dx_CCTransitionJumpZoom_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionJumpZoom_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionJumpZoom_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionJumpZoom_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionJumpZoom_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionJumpZoom_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionJumpZoom_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionJumpZoom_class->finalize = js_cocos2dx_CCTransitionJumpZoom_finalize;
	js_cocos2dx_CCTransitionJumpZoom_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionJumpZoom_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionJumpZoom_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionJumpZoom_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionJumpZoom_class,
		js_cocos2dx_CCTransitionJumpZoom_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionJumpZoom", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionJumpZoom> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionJumpZoom_class;
		p->proto = js_cocos2dx_CCTransitionJumpZoom_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionMoveInL_class;
JSObject *js_cocos2dx_CCTransitionMoveInL_prototype;

JSBool js_cocos2dx_CCTransitionMoveInL_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInL* cobj = (cocos2d::CCTransitionMoveInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInL_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInL* cobj = (cocos2d::CCTransitionMoveInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInL_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInL* cobj = (cocos2d::CCTransitionMoveInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInL_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInL* ret = cocos2d::CCTransitionMoveInL::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInL_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInL* ret = cocos2d::CCTransitionMoveInL::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInL_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionMoveInL* cobj = new cocos2d::CCTransitionMoveInL();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionMoveInL> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionMoveInL");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionMoveInL_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionMoveInL(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionMoveInL_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionMoveInL_class->name = "TransitionMoveInL";
	js_cocos2dx_CCTransitionMoveInL_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInL_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInL_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInL_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionMoveInL_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionMoveInL_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionMoveInL_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionMoveInL_class->finalize = js_cocos2dx_CCTransitionMoveInL_finalize;
	js_cocos2dx_CCTransitionMoveInL_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionMoveInL_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionMoveInL_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initScenes", js_cocos2dx_CCTransitionMoveInL_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionMoveInL_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionMoveInL_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionMoveInL_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionMoveInL_class,
		js_cocos2dx_CCTransitionMoveInL_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionMoveInL", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionMoveInL> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionMoveInL_class;
		p->proto = js_cocos2dx_CCTransitionMoveInL_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionMoveInR_class;
JSObject *js_cocos2dx_CCTransitionMoveInR_prototype;

JSBool js_cocos2dx_CCTransitionMoveInR_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInR* cobj = (cocos2d::CCTransitionMoveInR *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInR_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInR* ret = cocos2d::CCTransitionMoveInR::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInR_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInR* ret = cocos2d::CCTransitionMoveInR::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInR_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionMoveInR* cobj = new cocos2d::CCTransitionMoveInR();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionMoveInR> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionMoveInR");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionMoveInR_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionMoveInR(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionMoveInR_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionMoveInR_class->name = "TransitionMoveInR";
	js_cocos2dx_CCTransitionMoveInR_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInR_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInR_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInR_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionMoveInR_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionMoveInR_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionMoveInR_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionMoveInR_class->finalize = js_cocos2dx_CCTransitionMoveInR_finalize;
	js_cocos2dx_CCTransitionMoveInR_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initScenes", js_cocos2dx_CCTransitionMoveInR_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionMoveInR_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionMoveInR_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionMoveInR_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionMoveInL_prototype,
		js_cocos2dx_CCTransitionMoveInR_class,
		js_cocos2dx_CCTransitionMoveInR_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionMoveInR", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionMoveInR> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionMoveInR_class;
		p->proto = js_cocos2dx_CCTransitionMoveInR_prototype;
		p->parentProto = js_cocos2dx_CCTransitionMoveInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionMoveInT_class;
JSObject *js_cocos2dx_CCTransitionMoveInT_prototype;

JSBool js_cocos2dx_CCTransitionMoveInT_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInT* cobj = (cocos2d::CCTransitionMoveInT *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInT_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInT* ret = cocos2d::CCTransitionMoveInT::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInT>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInT_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInT* ret = cocos2d::CCTransitionMoveInT::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInT>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInT_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionMoveInT* cobj = new cocos2d::CCTransitionMoveInT();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionMoveInT> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionMoveInT");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionMoveInT_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionMoveInT(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionMoveInT_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionMoveInT_class->name = "TransitionMoveInT";
	js_cocos2dx_CCTransitionMoveInT_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInT_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInT_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInT_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionMoveInT_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionMoveInT_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionMoveInT_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionMoveInT_class->finalize = js_cocos2dx_CCTransitionMoveInT_finalize;
	js_cocos2dx_CCTransitionMoveInT_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initScenes", js_cocos2dx_CCTransitionMoveInT_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionMoveInT_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionMoveInT_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionMoveInT_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionMoveInL_prototype,
		js_cocos2dx_CCTransitionMoveInT_class,
		js_cocos2dx_CCTransitionMoveInT_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionMoveInT", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionMoveInT> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionMoveInT_class;
		p->proto = js_cocos2dx_CCTransitionMoveInT_prototype;
		p->parentProto = js_cocos2dx_CCTransitionMoveInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionMoveInB_class;
JSObject *js_cocos2dx_CCTransitionMoveInB_prototype;

JSBool js_cocos2dx_CCTransitionMoveInB_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionMoveInB* cobj = (cocos2d::CCTransitionMoveInB *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionMoveInB_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInB* ret = cocos2d::CCTransitionMoveInB::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInB>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInB_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionMoveInB* ret = cocos2d::CCTransitionMoveInB::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionMoveInB>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionMoveInB_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionMoveInB* cobj = new cocos2d::CCTransitionMoveInB();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionMoveInB> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionMoveInB");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionMoveInB_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionMoveInB(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionMoveInB_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionMoveInB_class->name = "TransitionMoveInB";
	js_cocos2dx_CCTransitionMoveInB_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInB_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInB_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionMoveInB_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionMoveInB_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionMoveInB_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionMoveInB_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionMoveInB_class->finalize = js_cocos2dx_CCTransitionMoveInB_finalize;
	js_cocos2dx_CCTransitionMoveInB_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("initScenes", js_cocos2dx_CCTransitionMoveInB_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionMoveInB_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionMoveInB_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionMoveInB_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionMoveInL_prototype,
		js_cocos2dx_CCTransitionMoveInB_class,
		js_cocos2dx_CCTransitionMoveInB_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionMoveInB", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionMoveInB> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionMoveInB_class;
		p->proto = js_cocos2dx_CCTransitionMoveInB_prototype;
		p->parentProto = js_cocos2dx_CCTransitionMoveInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSlideInL_class;
JSObject *js_cocos2dx_CCTransitionSlideInL_prototype;

JSBool js_cocos2dx_CCTransitionSlideInL_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInL* cobj = (cocos2d::CCTransitionSlideInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInL_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInL* cobj = (cocos2d::CCTransitionSlideInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInL_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInL* cobj = (cocos2d::CCTransitionSlideInL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInL_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInL* ret = cocos2d::CCTransitionSlideInL::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInL_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInL* ret = cocos2d::CCTransitionSlideInL::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInL_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSlideInL* cobj = new cocos2d::CCTransitionSlideInL();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSlideInL> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSlideInL");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSlideInL_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSlideInL(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSlideInL_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSlideInL_class->name = "TransitionSlideInL";
	js_cocos2dx_CCTransitionSlideInL_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInL_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInL_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInL_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSlideInL_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSlideInL_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSlideInL_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSlideInL_class->finalize = js_cocos2dx_CCTransitionSlideInL_finalize;
	js_cocos2dx_CCTransitionSlideInL_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSlideInL_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionSlideInL_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initScenes", js_cocos2dx_CCTransitionSlideInL_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSlideInL_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSlideInL_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSlideInL_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionSlideInL_class,
		js_cocos2dx_CCTransitionSlideInL_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSlideInL", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSlideInL> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSlideInL_class;
		p->proto = js_cocos2dx_CCTransitionSlideInL_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSlideInR_class;
JSObject *js_cocos2dx_CCTransitionSlideInR_prototype;

JSBool js_cocos2dx_CCTransitionSlideInR_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInR* cobj = (cocos2d::CCTransitionSlideInR *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInR_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInR* cobj = (cocos2d::CCTransitionSlideInR *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInR_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInR* ret = cocos2d::CCTransitionSlideInR::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInR_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInR* ret = cocos2d::CCTransitionSlideInR::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInR_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSlideInR* cobj = new cocos2d::CCTransitionSlideInR();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSlideInR> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSlideInR");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSlideInR_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSlideInR(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSlideInR_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSlideInR_class->name = "TransitionSlideInR";
	js_cocos2dx_CCTransitionSlideInR_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInR_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInR_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInR_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSlideInR_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSlideInR_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSlideInR_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSlideInR_class->finalize = js_cocos2dx_CCTransitionSlideInR_finalize;
	js_cocos2dx_CCTransitionSlideInR_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSlideInR_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initScenes", js_cocos2dx_CCTransitionSlideInR_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSlideInR_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSlideInR_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSlideInR_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSlideInL_prototype,
		js_cocos2dx_CCTransitionSlideInR_class,
		js_cocos2dx_CCTransitionSlideInR_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSlideInR", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSlideInR> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSlideInR_class;
		p->proto = js_cocos2dx_CCTransitionSlideInR_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSlideInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSlideInB_class;
JSObject *js_cocos2dx_CCTransitionSlideInB_prototype;

JSBool js_cocos2dx_CCTransitionSlideInB_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInB* cobj = (cocos2d::CCTransitionSlideInB *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInB_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInB* cobj = (cocos2d::CCTransitionSlideInB *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInB_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInB* ret = cocos2d::CCTransitionSlideInB::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInB>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInB_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInB* ret = cocos2d::CCTransitionSlideInB::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInB>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInB_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSlideInB* cobj = new cocos2d::CCTransitionSlideInB();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSlideInB> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSlideInB");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSlideInB_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSlideInB(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSlideInB_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSlideInB_class->name = "TransitionSlideInB";
	js_cocos2dx_CCTransitionSlideInB_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInB_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInB_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInB_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSlideInB_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSlideInB_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSlideInB_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSlideInB_class->finalize = js_cocos2dx_CCTransitionSlideInB_finalize;
	js_cocos2dx_CCTransitionSlideInB_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSlideInB_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initScenes", js_cocos2dx_CCTransitionSlideInB_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSlideInB_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSlideInB_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSlideInB_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSlideInL_prototype,
		js_cocos2dx_CCTransitionSlideInB_class,
		js_cocos2dx_CCTransitionSlideInB_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSlideInB", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSlideInB> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSlideInB_class;
		p->proto = js_cocos2dx_CCTransitionSlideInB_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSlideInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSlideInT_class;
JSObject *js_cocos2dx_CCTransitionSlideInT_prototype;

JSBool js_cocos2dx_CCTransitionSlideInT_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInT* cobj = (cocos2d::CCTransitionSlideInT *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInT_initScenes(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSlideInT* cobj = (cocos2d::CCTransitionSlideInT *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->initScenes();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSlideInT_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInT* ret = cocos2d::CCTransitionSlideInT::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInT>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInT_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSlideInT* ret = cocos2d::CCTransitionSlideInT::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSlideInT>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSlideInT_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSlideInT* cobj = new cocos2d::CCTransitionSlideInT();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSlideInT> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSlideInT");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSlideInT_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSlideInT(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSlideInT_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSlideInT_class->name = "TransitionSlideInT";
	js_cocos2dx_CCTransitionSlideInT_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInT_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInT_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSlideInT_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSlideInT_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSlideInT_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSlideInT_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSlideInT_class->finalize = js_cocos2dx_CCTransitionSlideInT_finalize;
	js_cocos2dx_CCTransitionSlideInT_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSlideInT_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initScenes", js_cocos2dx_CCTransitionSlideInT_initScenes, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSlideInT_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSlideInT_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSlideInT_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSlideInL_prototype,
		js_cocos2dx_CCTransitionSlideInT_class,
		js_cocos2dx_CCTransitionSlideInT_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSlideInT", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSlideInT> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSlideInT_class;
		p->proto = js_cocos2dx_CCTransitionSlideInT_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSlideInL_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionShrinkGrow_class;
JSObject *js_cocos2dx_CCTransitionShrinkGrow_prototype;

JSBool js_cocos2dx_CCTransitionShrinkGrow_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionShrinkGrow* cobj = (cocos2d::CCTransitionShrinkGrow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionShrinkGrow_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionShrinkGrow* ret = cocos2d::CCTransitionShrinkGrow::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionShrinkGrow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionShrinkGrow_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionShrinkGrow* ret = cocos2d::CCTransitionShrinkGrow::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionShrinkGrow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionShrinkGrow_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionShrinkGrow* cobj = new cocos2d::CCTransitionShrinkGrow();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionShrinkGrow> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionShrinkGrow");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionShrinkGrow_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionShrinkGrow(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionShrinkGrow_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionShrinkGrow_class->name = "TransitionShrinkGrow";
	js_cocos2dx_CCTransitionShrinkGrow_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionShrinkGrow_class->finalize = js_cocos2dx_CCTransitionShrinkGrow_finalize;
	js_cocos2dx_CCTransitionShrinkGrow_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionShrinkGrow_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionShrinkGrow_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionShrinkGrow_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionShrinkGrow_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionShrinkGrow_class,
		js_cocos2dx_CCTransitionShrinkGrow_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionShrinkGrow", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionShrinkGrow> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionShrinkGrow_class;
		p->proto = js_cocos2dx_CCTransitionShrinkGrow_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFlipX_class;
JSObject *js_cocos2dx_CCTransitionFlipX_prototype;

JSBool js_cocos2dx_CCTransitionFlipX_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionFlipX* ret = cocos2d::CCTransitionFlipX::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipX>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionFlipX* ret = cocos2d::CCTransitionFlipX::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipX>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFlipX_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionFlipX* ret = cocos2d::CCTransitionFlipX::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipX>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFlipX_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFlipX* cobj = new cocos2d::CCTransitionFlipX();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFlipX> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFlipX");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFlipX_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFlipX(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFlipX_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFlipX_class->name = "TransitionFlipX";
	js_cocos2dx_CCTransitionFlipX_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipX_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipX_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipX_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFlipX_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFlipX_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFlipX_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFlipX_class->finalize = js_cocos2dx_CCTransitionFlipX_finalize;
	js_cocos2dx_CCTransitionFlipX_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFlipX_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFlipX_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFlipX_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionFlipX_class,
		js_cocos2dx_CCTransitionFlipX_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFlipX", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFlipX> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFlipX_class;
		p->proto = js_cocos2dx_CCTransitionFlipX_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFlipY_class;
JSObject *js_cocos2dx_CCTransitionFlipY_prototype;

JSBool js_cocos2dx_CCTransitionFlipY_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionFlipY* ret = cocos2d::CCTransitionFlipY::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipY>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionFlipY* ret = cocos2d::CCTransitionFlipY::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipY>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFlipY_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionFlipY* ret = cocos2d::CCTransitionFlipY::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipY>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFlipY_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFlipY* cobj = new cocos2d::CCTransitionFlipY();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFlipY> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFlipY");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFlipY_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFlipY(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFlipY_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFlipY_class->name = "TransitionFlipY";
	js_cocos2dx_CCTransitionFlipY_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipY_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipY_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipY_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFlipY_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFlipY_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFlipY_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFlipY_class->finalize = js_cocos2dx_CCTransitionFlipY_finalize;
	js_cocos2dx_CCTransitionFlipY_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFlipY_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFlipY_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFlipY_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionFlipY_class,
		js_cocos2dx_CCTransitionFlipY_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFlipY", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFlipY> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFlipY_class;
		p->proto = js_cocos2dx_CCTransitionFlipY_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFlipAngular_class;
JSObject *js_cocos2dx_CCTransitionFlipAngular_prototype;

JSBool js_cocos2dx_CCTransitionFlipAngular_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionFlipAngular* ret = cocos2d::CCTransitionFlipAngular::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipAngular>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionFlipAngular* ret = cocos2d::CCTransitionFlipAngular::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipAngular>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFlipAngular_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionFlipAngular* ret = cocos2d::CCTransitionFlipAngular::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFlipAngular>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFlipAngular_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFlipAngular* cobj = new cocos2d::CCTransitionFlipAngular();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFlipAngular> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFlipAngular");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFlipAngular_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFlipAngular(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFlipAngular_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFlipAngular_class->name = "TransitionFlipAngular";
	js_cocos2dx_CCTransitionFlipAngular_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipAngular_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipAngular_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFlipAngular_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFlipAngular_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFlipAngular_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFlipAngular_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFlipAngular_class->finalize = js_cocos2dx_CCTransitionFlipAngular_finalize;
	js_cocos2dx_CCTransitionFlipAngular_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFlipAngular_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFlipAngular_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFlipAngular_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionFlipAngular_class,
		js_cocos2dx_CCTransitionFlipAngular_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFlipAngular", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFlipAngular> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFlipAngular_class;
		p->proto = js_cocos2dx_CCTransitionFlipAngular_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionZoomFlipX_class;
JSObject *js_cocos2dx_CCTransitionZoomFlipX_prototype;

JSBool js_cocos2dx_CCTransitionZoomFlipX_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionZoomFlipX* ret = cocos2d::CCTransitionZoomFlipX::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipX>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionZoomFlipX* ret = cocos2d::CCTransitionZoomFlipX::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipX>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionZoomFlipX_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionZoomFlipX* ret = cocos2d::CCTransitionZoomFlipX::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipX>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionZoomFlipX_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionZoomFlipX* cobj = new cocos2d::CCTransitionZoomFlipX();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionZoomFlipX> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionZoomFlipX");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionZoomFlipX_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionZoomFlipX(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionZoomFlipX_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionZoomFlipX_class->name = "TransitionZoomFlipX";
	js_cocos2dx_CCTransitionZoomFlipX_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionZoomFlipX_class->finalize = js_cocos2dx_CCTransitionZoomFlipX_finalize;
	js_cocos2dx_CCTransitionZoomFlipX_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionZoomFlipX_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionZoomFlipX_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionZoomFlipX_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionZoomFlipX_class,
		js_cocos2dx_CCTransitionZoomFlipX_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionZoomFlipX", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionZoomFlipX> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionZoomFlipX_class;
		p->proto = js_cocos2dx_CCTransitionZoomFlipX_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionZoomFlipY_class;
JSObject *js_cocos2dx_CCTransitionZoomFlipY_prototype;

JSBool js_cocos2dx_CCTransitionZoomFlipY_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionZoomFlipY* ret = cocos2d::CCTransitionZoomFlipY::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipY>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionZoomFlipY* ret = cocos2d::CCTransitionZoomFlipY::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipY>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionZoomFlipY_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionZoomFlipY* ret = cocos2d::CCTransitionZoomFlipY::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipY>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionZoomFlipY_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionZoomFlipY* cobj = new cocos2d::CCTransitionZoomFlipY();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionZoomFlipY> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionZoomFlipY");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionZoomFlipY_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionZoomFlipY(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionZoomFlipY_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionZoomFlipY_class->name = "TransitionZoomFlipY";
	js_cocos2dx_CCTransitionZoomFlipY_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionZoomFlipY_class->finalize = js_cocos2dx_CCTransitionZoomFlipY_finalize;
	js_cocos2dx_CCTransitionZoomFlipY_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionZoomFlipY_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionZoomFlipY_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionZoomFlipY_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionZoomFlipY_class,
		js_cocos2dx_CCTransitionZoomFlipY_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionZoomFlipY", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionZoomFlipY> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionZoomFlipY_class;
		p->proto = js_cocos2dx_CCTransitionZoomFlipY_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionZoomFlipAngular_class;
JSObject *js_cocos2dx_CCTransitionZoomFlipAngular_prototype;

JSBool js_cocos2dx_CCTransitionZoomFlipAngular_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionZoomFlipAngular* ret = cocos2d::CCTransitionZoomFlipAngular::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipAngular>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::tOrientation arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCTransitionZoomFlipAngular* ret = cocos2d::CCTransitionZoomFlipAngular::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipAngular>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionZoomFlipAngular_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::tOrientation arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	cocos2d::CCTransitionZoomFlipAngular* ret = cocos2d::CCTransitionZoomFlipAngular::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionZoomFlipAngular>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionZoomFlipAngular_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionZoomFlipAngular* cobj = new cocos2d::CCTransitionZoomFlipAngular();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionZoomFlipAngular> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionZoomFlipAngular");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionZoomFlipAngular_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionZoomFlipAngular(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionZoomFlipAngular_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionZoomFlipAngular_class->name = "TransitionZoomFlipAngular";
	js_cocos2dx_CCTransitionZoomFlipAngular_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->finalize = js_cocos2dx_CCTransitionZoomFlipAngular_finalize;
	js_cocos2dx_CCTransitionZoomFlipAngular_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionZoomFlipAngular_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionZoomFlipAngular_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionZoomFlipAngular_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSceneOriented_prototype,
		js_cocos2dx_CCTransitionZoomFlipAngular_class,
		js_cocos2dx_CCTransitionZoomFlipAngular_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionZoomFlipAngular", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionZoomFlipAngular> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionZoomFlipAngular_class;
		p->proto = js_cocos2dx_CCTransitionZoomFlipAngular_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSceneOriented_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFade_class;
JSObject *js_cocos2dx_CCTransitionFade_prototype;

JSBool js_cocos2dx_CCTransitionFade_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCTransitionFade* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCTransitionFade *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->initWithDuration(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::ccColor3B arg2;
		arg2 = jsval_to_cccolor3b(cx, argv[2]);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFade_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 2) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::CCTransitionFade* ret = cocos2d::CCTransitionFade::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFade>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cocos2d::CCScene* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cocos2d::ccColor3B arg2;
		arg2 = jsval_to_cccolor3b(cx, argv[2]);
		cocos2d::CCTransitionFade* ret = cocos2d::CCTransitionFade::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFade>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFade_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	cocos2d::ccColor3B arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	arg2 = jsval_to_cccolor3b(cx, argv[2]);
	cocos2d::CCTransitionFade* ret = cocos2d::CCTransitionFade::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFade>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFade_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFade* cobj = new cocos2d::CCTransitionFade();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFade> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFade");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFade_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFade(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFade_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFade_class->name = "TransitionFade";
	js_cocos2dx_CCTransitionFade_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFade_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFade_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFade_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFade_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFade_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFade_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFade_class->finalize = js_cocos2dx_CCTransitionFade_finalize;
	js_cocos2dx_CCTransitionFade_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithDuration", js_cocos2dx_CCTransitionFade_initWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFade_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFade_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFade_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionFade_class,
		js_cocos2dx_CCTransitionFade_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFade", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFade> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFade_class;
		p->proto = js_cocos2dx_CCTransitionFade_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionCrossFade_class;
JSObject *js_cocos2dx_CCTransitionCrossFade_prototype;

JSBool js_cocos2dx_CCTransitionCrossFade_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionCrossFade* cobj = (cocos2d::CCTransitionCrossFade *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionCrossFade_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionCrossFade* ret = cocos2d::CCTransitionCrossFade::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionCrossFade>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionCrossFade_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionCrossFade* ret = cocos2d::CCTransitionCrossFade::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionCrossFade>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionCrossFade_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionCrossFade* cobj = new cocos2d::CCTransitionCrossFade();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionCrossFade> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionCrossFade");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionCrossFade_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionCrossFade(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionCrossFade_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionCrossFade_class->name = "TransitionCrossFade";
	js_cocos2dx_CCTransitionCrossFade_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionCrossFade_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionCrossFade_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionCrossFade_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionCrossFade_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionCrossFade_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionCrossFade_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionCrossFade_class->finalize = js_cocos2dx_CCTransitionCrossFade_finalize;
	js_cocos2dx_CCTransitionCrossFade_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("draw", js_cocos2dx_CCTransitionCrossFade_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionCrossFade_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionCrossFade_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionCrossFade_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionCrossFade_class,
		js_cocos2dx_CCTransitionCrossFade_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionCrossFade", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionCrossFade> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionCrossFade_class;
		p->proto = js_cocos2dx_CCTransitionCrossFade_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionTurnOffTiles_class;
JSObject *js_cocos2dx_CCTransitionTurnOffTiles_prototype;

JSBool js_cocos2dx_CCTransitionTurnOffTiles_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionTurnOffTiles* cobj = (cocos2d::CCTransitionTurnOffTiles *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionTurnOffTiles_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionTurnOffTiles* ret = cocos2d::CCTransitionTurnOffTiles::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionTurnOffTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionTurnOffTiles_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionTurnOffTiles* ret = cocos2d::CCTransitionTurnOffTiles::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionTurnOffTiles>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionTurnOffTiles_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionTurnOffTiles* cobj = new cocos2d::CCTransitionTurnOffTiles();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionTurnOffTiles> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionTurnOffTiles");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionTurnOffTiles_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionTurnOffTiles(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionTurnOffTiles_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionTurnOffTiles_class->name = "TransitionTurnOffTiles";
	js_cocos2dx_CCTransitionTurnOffTiles_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionTurnOffTiles_class->finalize = js_cocos2dx_CCTransitionTurnOffTiles_finalize;
	js_cocos2dx_CCTransitionTurnOffTiles_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionTurnOffTiles_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionTurnOffTiles_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionTurnOffTiles_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionTurnOffTiles_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionTurnOffTiles_class,
		js_cocos2dx_CCTransitionTurnOffTiles_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionTurnOffTiles", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionTurnOffTiles> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionTurnOffTiles_class;
		p->proto = js_cocos2dx_CCTransitionTurnOffTiles_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSplitCols_class;
JSObject *js_cocos2dx_CCTransitionSplitCols_prototype;

JSBool js_cocos2dx_CCTransitionSplitCols_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSplitCols* cobj = (cocos2d::CCTransitionSplitCols *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSplitCols_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSplitCols* cobj = (cocos2d::CCTransitionSplitCols *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSplitCols_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSplitCols* ret = cocos2d::CCTransitionSplitCols::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSplitCols>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSplitCols_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSplitCols* ret = cocos2d::CCTransitionSplitCols::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSplitCols>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSplitCols_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSplitCols* cobj = new cocos2d::CCTransitionSplitCols();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSplitCols> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSplitCols");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSplitCols_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSplitCols(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSplitCols_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSplitCols_class->name = "TransitionSplitCols";
	js_cocos2dx_CCTransitionSplitCols_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitCols_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitCols_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitCols_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSplitCols_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSplitCols_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSplitCols_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSplitCols_class->finalize = js_cocos2dx_CCTransitionSplitCols_finalize;
	js_cocos2dx_CCTransitionSplitCols_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSplitCols_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionSplitCols_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSplitCols_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSplitCols_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSplitCols_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionSplitCols_class,
		js_cocos2dx_CCTransitionSplitCols_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSplitCols", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSplitCols> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSplitCols_class;
		p->proto = js_cocos2dx_CCTransitionSplitCols_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionSplitRows_class;
JSObject *js_cocos2dx_CCTransitionSplitRows_prototype;

JSBool js_cocos2dx_CCTransitionSplitRows_action(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionSplitRows* cobj = (cocos2d::CCTransitionSplitRows *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCActionInterval* ret = cobj->action();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionSplitRows_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSplitRows* ret = cocos2d::CCTransitionSplitRows::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSplitRows>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSplitRows_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionSplitRows* ret = cocos2d::CCTransitionSplitRows::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionSplitRows>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionSplitRows_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionSplitRows* cobj = new cocos2d::CCTransitionSplitRows();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionSplitRows> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionSplitRows");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionSplitRows_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionSplitRows(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionSplitRows_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionSplitRows_class->name = "TransitionSplitRows";
	js_cocos2dx_CCTransitionSplitRows_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitRows_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitRows_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionSplitRows_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionSplitRows_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionSplitRows_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionSplitRows_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionSplitRows_class->finalize = js_cocos2dx_CCTransitionSplitRows_finalize;
	js_cocos2dx_CCTransitionSplitRows_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("action", js_cocos2dx_CCTransitionSplitRows_action, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionSplitRows_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionSplitRows_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionSplitRows_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionSplitCols_prototype,
		js_cocos2dx_CCTransitionSplitRows_class,
		js_cocos2dx_CCTransitionSplitRows_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionSplitRows", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionSplitRows> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionSplitRows_class;
		p->proto = js_cocos2dx_CCTransitionSplitRows_prototype;
		p->parentProto = js_cocos2dx_CCTransitionSplitCols_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFadeTR_class;
JSObject *js_cocos2dx_CCTransitionFadeTR_prototype;

JSBool js_cocos2dx_CCTransitionFadeTR_easeActionWithAction(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionFadeTR* cobj = (cocos2d::CCTransitionFadeTR *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCActionInterval* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCActionInterval*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cocos2d::CCActionInterval* ret = cobj->easeActionWithAction(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFadeTR_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionFadeTR* cobj = (cocos2d::CCTransitionFadeTR *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cocos2d::CCActionInterval* ret = cobj->actionWithSize(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFadeTR_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeTR* ret = cocos2d::CCTransitionFadeTR::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeTR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeTR_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeTR* ret = cocos2d::CCTransitionFadeTR::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeTR>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeTR_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFadeTR* cobj = new cocos2d::CCTransitionFadeTR();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFadeTR> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFadeTR");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFadeTR_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFadeTR(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFadeTR_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFadeTR_class->name = "TransitionFadeTR";
	js_cocos2dx_CCTransitionFadeTR_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeTR_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeTR_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeTR_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFadeTR_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFadeTR_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFadeTR_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFadeTR_class->finalize = js_cocos2dx_CCTransitionFadeTR_finalize;
	js_cocos2dx_CCTransitionFadeTR_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("easeActionWithAction", js_cocos2dx_CCTransitionFadeTR_easeActionWithAction, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("actionWithSize", js_cocos2dx_CCTransitionFadeTR_actionWithSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFadeTR_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFadeTR_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFadeTR_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionFadeTR_class,
		js_cocos2dx_CCTransitionFadeTR_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFadeTR", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFadeTR> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFadeTR_class;
		p->proto = js_cocos2dx_CCTransitionFadeTR_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFadeBL_class;
JSObject *js_cocos2dx_CCTransitionFadeBL_prototype;

JSBool js_cocos2dx_CCTransitionFadeBL_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionFadeBL* cobj = (cocos2d::CCTransitionFadeBL *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cocos2d::CCActionInterval* ret = cobj->actionWithSize(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFadeBL_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeBL* ret = cocos2d::CCTransitionFadeBL::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeBL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeBL_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeBL* ret = cocos2d::CCTransitionFadeBL::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeBL>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeBL_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFadeBL* cobj = new cocos2d::CCTransitionFadeBL();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFadeBL> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFadeBL");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFadeBL_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFadeBL(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFadeBL_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFadeBL_class->name = "TransitionFadeBL";
	js_cocos2dx_CCTransitionFadeBL_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeBL_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeBL_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeBL_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFadeBL_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFadeBL_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFadeBL_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFadeBL_class->finalize = js_cocos2dx_CCTransitionFadeBL_finalize;
	js_cocos2dx_CCTransitionFadeBL_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("actionWithSize", js_cocos2dx_CCTransitionFadeBL_actionWithSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFadeBL_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFadeBL_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFadeBL_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionFadeTR_prototype,
		js_cocos2dx_CCTransitionFadeBL_class,
		js_cocos2dx_CCTransitionFadeBL_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFadeBL", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFadeBL> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFadeBL_class;
		p->proto = js_cocos2dx_CCTransitionFadeBL_prototype;
		p->parentProto = js_cocos2dx_CCTransitionFadeTR_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFadeUp_class;
JSObject *js_cocos2dx_CCTransitionFadeUp_prototype;

JSBool js_cocos2dx_CCTransitionFadeUp_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionFadeUp* cobj = (cocos2d::CCTransitionFadeUp *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cocos2d::CCActionInterval* ret = cobj->actionWithSize(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFadeUp_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeUp* ret = cocos2d::CCTransitionFadeUp::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeUp>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeUp_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeUp* ret = cocos2d::CCTransitionFadeUp::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeUp>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeUp_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFadeUp* cobj = new cocos2d::CCTransitionFadeUp();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFadeUp> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFadeUp");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFadeUp_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFadeUp(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFadeUp_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFadeUp_class->name = "TransitionFadeUp";
	js_cocos2dx_CCTransitionFadeUp_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeUp_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeUp_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeUp_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFadeUp_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFadeUp_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFadeUp_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFadeUp_class->finalize = js_cocos2dx_CCTransitionFadeUp_finalize;
	js_cocos2dx_CCTransitionFadeUp_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("actionWithSize", js_cocos2dx_CCTransitionFadeUp_actionWithSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFadeUp_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFadeUp_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFadeUp_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionFadeTR_prototype,
		js_cocos2dx_CCTransitionFadeUp_class,
		js_cocos2dx_CCTransitionFadeUp_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFadeUp", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFadeUp> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFadeUp_class;
		p->proto = js_cocos2dx_CCTransitionFadeUp_prototype;
		p->parentProto = js_cocos2dx_CCTransitionFadeTR_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionFadeDown_class;
JSObject *js_cocos2dx_CCTransitionFadeDown_prototype;

JSBool js_cocos2dx_CCTransitionFadeDown_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionFadeDown* cobj = (cocos2d::CCTransitionFadeDown *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cocos2d::CCActionInterval* ret = cobj->actionWithSize(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionFadeDown_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeDown* ret = cocos2d::CCTransitionFadeDown::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeDown>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeDown_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionFadeDown* ret = cocos2d::CCTransitionFadeDown::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionFadeDown>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionFadeDown_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionFadeDown* cobj = new cocos2d::CCTransitionFadeDown();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionFadeDown> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionFadeDown");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionFadeDown_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionFadeDown(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionFadeDown_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionFadeDown_class->name = "TransitionFadeDown";
	js_cocos2dx_CCTransitionFadeDown_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeDown_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeDown_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionFadeDown_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionFadeDown_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionFadeDown_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionFadeDown_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionFadeDown_class->finalize = js_cocos2dx_CCTransitionFadeDown_finalize;
	js_cocos2dx_CCTransitionFadeDown_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("actionWithSize", js_cocos2dx_CCTransitionFadeDown_actionWithSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionFadeDown_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionFadeDown_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionFadeDown_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionFadeTR_prototype,
		js_cocos2dx_CCTransitionFadeDown_class,
		js_cocos2dx_CCTransitionFadeDown_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionFadeDown", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionFadeDown> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionFadeDown_class;
		p->proto = js_cocos2dx_CCTransitionFadeDown_prototype;
		p->parentProto = js_cocos2dx_CCTransitionFadeTR_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionPageTurn_class;
JSObject *js_cocos2dx_CCTransitionPageTurn_prototype;

JSBool js_cocos2dx_CCTransitionPageTurn_actionWithSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionPageTurn* cobj = (cocos2d::CCTransitionPageTurn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		cocos2d::CCActionInterval* ret = cobj->actionWithSize(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCActionInterval>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionPageTurn_initWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTransitionPageTurn* cobj = (cocos2d::CCTransitionPageTurn *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		double arg0;
		cocos2d::CCScene* arg1;
		JSBool arg2;
		JS_ValueToNumber(cx, argv[0], &arg0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		JS_ValueToBoolean(cx, argv[2], &arg2);
		bool ret = cobj->initWithDuration(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTransitionPageTurn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	JSBool arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToBoolean(cx, argv[2], &arg2);
	cocos2d::CCTransitionPageTurn* ret = cocos2d::CCTransitionPageTurn::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionPageTurn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionPageTurn_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	JSBool arg2;
	assert(argc >= 3);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	JS_ValueToBoolean(cx, argv[2], &arg2);
	cocos2d::CCTransitionPageTurn* ret = cocos2d::CCTransitionPageTurn::transitionWithDuration(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionPageTurn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionPageTurn_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionPageTurn* cobj = new cocos2d::CCTransitionPageTurn();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionPageTurn> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionPageTurn");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionPageTurn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionPageTurn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionPageTurn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionPageTurn_class->name = "TransitionPageTurn";
	js_cocos2dx_CCTransitionPageTurn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionPageTurn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionPageTurn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionPageTurn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionPageTurn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionPageTurn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionPageTurn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionPageTurn_class->finalize = js_cocos2dx_CCTransitionPageTurn_finalize;
	js_cocos2dx_CCTransitionPageTurn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("actionWithSize", js_cocos2dx_CCTransitionPageTurn_actionWithSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDuration", js_cocos2dx_CCTransitionPageTurn_initWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionPageTurn_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionPageTurn_transitionWithDuration, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionPageTurn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionPageTurn_class,
		js_cocos2dx_CCTransitionPageTurn_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionPageTurn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionPageTurn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionPageTurn_class;
		p->proto = js_cocos2dx_CCTransitionPageTurn_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgress_class;
JSObject *js_cocos2dx_CCTransitionProgress_prototype;

JSBool js_cocos2dx_CCTransitionProgress_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgress* ret = cocos2d::CCTransitionProgress::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgress>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgress_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgress* ret = cocos2d::CCTransitionProgress::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgress>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgress_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTransitionProgress* cobj = new cocos2d::CCTransitionProgress();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTransitionProgress> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTransitionProgress");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTransitionProgress_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgress(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgress_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgress_class->name = "TransitionProgress";
	js_cocos2dx_CCTransitionProgress_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgress_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgress_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgress_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgress_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgress_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgress_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgress_class->finalize = js_cocos2dx_CCTransitionProgress_finalize;
	js_cocos2dx_CCTransitionProgress_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgress_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgress_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgress_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionScene_prototype,
		js_cocos2dx_CCTransitionProgress_class,
		js_cocos2dx_CCTransitionProgress_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgress", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgress> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgress_class;
		p->proto = js_cocos2dx_CCTransitionProgress_prototype;
		p->parentProto = js_cocos2dx_CCTransitionScene_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressRadialCCW_class;
JSObject *js_cocos2dx_CCTransitionProgressRadialCCW_prototype;

JSBool js_cocos2dx_CCTransitionProgressRadialCCW_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressRadialCCW* ret = cocos2d::CCTransitionProgressRadialCCW::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressRadialCCW>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressRadialCCW_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressRadialCCW* ret = cocos2d::CCTransitionProgressRadialCCW::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressRadialCCW>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressRadialCCW_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressRadialCCW(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressRadialCCW_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressRadialCCW_class->name = "TransitionProgressRadialW";
	js_cocos2dx_CCTransitionProgressRadialCCW_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->finalize = js_cocos2dx_CCTransitionProgressRadialCCW_finalize;
	js_cocos2dx_CCTransitionProgressRadialCCW_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressRadialCCW_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressRadialCCW_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressRadialCCW_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressRadialCCW_class,
		dummy_constructor<cocos2d::CCTransitionProgressRadialCCW>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressRadialW", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressRadialCCW> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressRadialCCW_class;
		p->proto = js_cocos2dx_CCTransitionProgressRadialCCW_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressRadialCW_class;
JSObject *js_cocos2dx_CCTransitionProgressRadialCW_prototype;

JSBool js_cocos2dx_CCTransitionProgressRadialCW_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressRadialCW* ret = cocos2d::CCTransitionProgressRadialCW::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressRadialCW>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressRadialCW_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressRadialCW* ret = cocos2d::CCTransitionProgressRadialCW::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressRadialCW>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressRadialCW_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressRadialCW(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressRadialCW_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressRadialCW_class->name = "TransitionProgressRadialCW";
	js_cocos2dx_CCTransitionProgressRadialCW_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressRadialCW_class->finalize = js_cocos2dx_CCTransitionProgressRadialCW_finalize;
	js_cocos2dx_CCTransitionProgressRadialCW_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressRadialCW_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressRadialCW_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressRadialCW_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressRadialCW_class,
		dummy_constructor<cocos2d::CCTransitionProgressRadialCW>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressRadialCW", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressRadialCW> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressRadialCW_class;
		p->proto = js_cocos2dx_CCTransitionProgressRadialCW_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressHorizontal_class;
JSObject *js_cocos2dx_CCTransitionProgressHorizontal_prototype;

JSBool js_cocos2dx_CCTransitionProgressHorizontal_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressHorizontal* ret = cocos2d::CCTransitionProgressHorizontal::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressHorizontal>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressHorizontal_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressHorizontal* ret = cocos2d::CCTransitionProgressHorizontal::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressHorizontal>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressHorizontal_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressHorizontal(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressHorizontal_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressHorizontal_class->name = "TransitionProgressHorizontal";
	js_cocos2dx_CCTransitionProgressHorizontal_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressHorizontal_class->finalize = js_cocos2dx_CCTransitionProgressHorizontal_finalize;
	js_cocos2dx_CCTransitionProgressHorizontal_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressHorizontal_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressHorizontal_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressHorizontal_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressHorizontal_class,
		dummy_constructor<cocos2d::CCTransitionProgressHorizontal>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressHorizontal", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressHorizontal> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressHorizontal_class;
		p->proto = js_cocos2dx_CCTransitionProgressHorizontal_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressVertical_class;
JSObject *js_cocos2dx_CCTransitionProgressVertical_prototype;

JSBool js_cocos2dx_CCTransitionProgressVertical_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressVertical* ret = cocos2d::CCTransitionProgressVertical::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressVertical>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressVertical_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressVertical* ret = cocos2d::CCTransitionProgressVertical::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressVertical>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressVertical_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressVertical(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressVertical_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressVertical_class->name = "TransitionProgressVertical";
	js_cocos2dx_CCTransitionProgressVertical_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressVertical_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressVertical_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressVertical_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressVertical_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressVertical_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressVertical_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressVertical_class->finalize = js_cocos2dx_CCTransitionProgressVertical_finalize;
	js_cocos2dx_CCTransitionProgressVertical_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressVertical_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressVertical_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressVertical_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressVertical_class,
		dummy_constructor<cocos2d::CCTransitionProgressVertical>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressVertical", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressVertical> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressVertical_class;
		p->proto = js_cocos2dx_CCTransitionProgressVertical_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressInOut_class;
JSObject *js_cocos2dx_CCTransitionProgressInOut_prototype;

JSBool js_cocos2dx_CCTransitionProgressInOut_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressInOut* ret = cocos2d::CCTransitionProgressInOut::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressInOut_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressInOut* ret = cocos2d::CCTransitionProgressInOut::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressInOut>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressInOut_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressInOut(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressInOut_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressInOut_class->name = "TransitionProgressInOut";
	js_cocos2dx_CCTransitionProgressInOut_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressInOut_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressInOut_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressInOut_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressInOut_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressInOut_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressInOut_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressInOut_class->finalize = js_cocos2dx_CCTransitionProgressInOut_finalize;
	js_cocos2dx_CCTransitionProgressInOut_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressInOut_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressInOut_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressInOut_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressInOut_class,
		dummy_constructor<cocos2d::CCTransitionProgressInOut>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressInOut", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressInOut> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressInOut_class;
		p->proto = js_cocos2dx_CCTransitionProgressInOut_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTransitionProgressOutIn_class;
JSObject *js_cocos2dx_CCTransitionProgressOutIn_prototype;

JSBool js_cocos2dx_CCTransitionProgressOutIn_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressOutIn* ret = cocos2d::CCTransitionProgressOutIn::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressOutIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTransitionProgressOutIn_transitionWithDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	double arg0;
	cocos2d::CCScene* arg1;
	assert(argc >= 2);

	JS_ValueToNumber(cx, argv[0], &arg0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCScene*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	cocos2d::CCTransitionProgressOutIn* ret = cocos2d::CCTransitionProgressOutIn::transitionWithDuration(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTransitionProgressOutIn>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCTransitionProgressOutIn_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTransitionProgressOutIn(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTransitionProgressOutIn_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTransitionProgressOutIn_class->name = "TransitionProgressOutIn";
	js_cocos2dx_CCTransitionProgressOutIn_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTransitionProgressOutIn_class->finalize = js_cocos2dx_CCTransitionProgressOutIn_finalize;
	js_cocos2dx_CCTransitionProgressOutIn_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTransitionProgressOutIn_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("transitionWithDuration", js_cocos2dx_CCTransitionProgressOutIn_transitionWithDuration, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTransitionProgressOutIn_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCTransitionProgress_prototype,
		js_cocos2dx_CCTransitionProgressOutIn_class,
		dummy_constructor<cocos2d::CCTransitionProgressOutIn>, 0, // no constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TransitionProgressOutIn", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTransitionProgressOutIn> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTransitionProgressOutIn_class;
		p->proto = js_cocos2dx_CCTransitionProgressOutIn_prototype;
		p->parentProto = js_cocos2dx_CCTransitionProgress_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItem_class;
JSObject *js_cocos2dx_CCMenuItem_prototype;

JSBool js_cocos2dx_CCMenuItem_activate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->activate();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_unregisterScriptTapHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unregisterScriptTapHandler();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_setEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_isEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isEnabled();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_selected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->selected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_getScriptTapHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getScriptTapHandler();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_isSelected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isSelected();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_registerScriptTapHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->registerScriptTapHandler(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_unselected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unselected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_rect(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItem* cobj = (cocos2d::CCMenuItem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCRect ret = cobj->rect();
		jsval jsret;
		jsret = ccrect_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItem_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItem* cobj = new cocos2d::CCMenuItem();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItem> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItem");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItem_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItem(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItem_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItem_class->name = "MenuItem";
	js_cocos2dx_CCMenuItem_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItem_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItem_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItem_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItem_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItem_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItem_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItem_class->finalize = js_cocos2dx_CCMenuItem_finalize;
	js_cocos2dx_CCMenuItem_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("activate", js_cocos2dx_CCMenuItem_activate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unregisterScriptTapHandler", js_cocos2dx_CCMenuItem_unregisterScriptTapHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setIsEnabled", js_cocos2dx_CCMenuItem_setEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isEnabled", js_cocos2dx_CCMenuItem_isEnabled, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("selected", js_cocos2dx_CCMenuItem_selected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScriptTapHandler", js_cocos2dx_CCMenuItem_getScriptTapHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isSelected", js_cocos2dx_CCMenuItem_isSelected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("registerScriptTapHandler", js_cocos2dx_CCMenuItem_registerScriptTapHandler, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unselected", js_cocos2dx_CCMenuItem_unselected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("rect", js_cocos2dx_CCMenuItem_rect, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCMenuItem_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCMenuItem_class,
		js_cocos2dx_CCMenuItem_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItem", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItem> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItem_class;
		p->proto = js_cocos2dx_CCMenuItem_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemLabel_class;
JSObject *js_cocos2dx_CCMenuItemLabel_prototype;

JSBool js_cocos2dx_CCMenuItemLabel_setEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_setLabel(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setLabel(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_activate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->activate();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_getDisabledColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getDisabledColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_setString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_selected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->selected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_setDisabledColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setDisabledColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_getLabel(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getLabel();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_unselected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemLabel* cobj = (cocos2d::CCMenuItemLabel *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unselected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemLabel_itemWithLabel(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCMenuItemLabel* ret = cocos2d::CCMenuItemLabel::itemWithLabel(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemLabel>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemLabel_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemLabel* cobj = new cocos2d::CCMenuItemLabel();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemLabel> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemLabel");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemLabel_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemLabel(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemLabel_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemLabel_class->name = "MenuItemLabel";
	js_cocos2dx_CCMenuItemLabel_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemLabel_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemLabel_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemLabel_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemLabel_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemLabel_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemLabel_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemLabel_class->finalize = js_cocos2dx_CCMenuItemLabel_finalize;
	js_cocos2dx_CCMenuItemLabel_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setEnabled", js_cocos2dx_CCMenuItemLabel_setEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLabel", js_cocos2dx_CCMenuItemLabel_setLabel, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("activate", js_cocos2dx_CCMenuItemLabel_activate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCMenuItemLabel_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDisabledColor", js_cocos2dx_CCMenuItemLabel_getDisabledColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setString", js_cocos2dx_CCMenuItemLabel_setString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("selected", js_cocos2dx_CCMenuItemLabel_selected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCMenuItemLabel_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisabledColor", js_cocos2dx_CCMenuItemLabel_setDisabledColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLabel", js_cocos2dx_CCMenuItemLabel_getLabel, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCMenuItemLabel_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCMenuItemLabel_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unselected", js_cocos2dx_CCMenuItemLabel_unselected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("itemWithLabel", js_cocos2dx_CCMenuItemLabel_itemWithLabel, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemLabel_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItem_prototype,
		js_cocos2dx_CCMenuItemLabel_class,
		js_cocos2dx_CCMenuItemLabel_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemLabel", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemLabel> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemLabel_class;
		p->proto = js_cocos2dx_CCMenuItemLabel_prototype;
		p->parentProto = js_cocos2dx_CCMenuItem_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemAtlasFont_class;
JSObject *js_cocos2dx_CCMenuItemAtlasFont_prototype;

JSBool js_cocos2dx_CCMenuItemAtlasFont_itemWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	int arg2;
	int arg3;
	int32_t arg4;
	assert(argc >= 5);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	JS_ValueToInt32(cx, argv[4], &arg4);
	cocos2d::CCMenuItemAtlasFont* ret = cocos2d::CCMenuItemAtlasFont::itemWithString(arg0, arg1, arg2, arg3, arg4);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemAtlasFont>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemAtlasFont_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemAtlasFont* cobj = new cocos2d::CCMenuItemAtlasFont();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemAtlasFont> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemAtlasFont");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemAtlasFont_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemAtlasFont(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemAtlasFont_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemAtlasFont_class->name = "MenuItemAtlasFont";
	js_cocos2dx_CCMenuItemAtlasFont_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemAtlasFont_class->finalize = js_cocos2dx_CCMenuItemAtlasFont_finalize;
	js_cocos2dx_CCMenuItemAtlasFont_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	JSFunctionSpec *funcs = NULL;

	static JSFunctionSpec st_funcs[] = {
		JS_FN("itemWithString", js_cocos2dx_CCMenuItemAtlasFont_itemWithString, 5, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemAtlasFont_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItemLabel_prototype,
		js_cocos2dx_CCMenuItemAtlasFont_class,
		js_cocos2dx_CCMenuItemAtlasFont_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemAtlasFont", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemAtlasFont> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemAtlasFont_class;
		p->proto = js_cocos2dx_CCMenuItemAtlasFont_prototype;
		p->parentProto = js_cocos2dx_CCMenuItemLabel_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemFont_class;
JSObject *js_cocos2dx_CCMenuItemFont_prototype;

JSBool js_cocos2dx_CCMenuItemFont_setFontNameObj(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemFont* cobj = (cocos2d::CCMenuItemFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setFontNameObj(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemFont_fontNameObj(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemFont* cobj = (cocos2d::CCMenuItemFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->fontNameObj();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemFont_setFontSizeObj(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemFont* cobj = (cocos2d::CCMenuItemFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setFontSizeObj(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemFont_fontSizeObj(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemFont* cobj = (cocos2d::CCMenuItemFont *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->fontSizeObj();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemFont_setFontName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCMenuItemFont::setFontName(arg0);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemFont_fontName(JSContext *cx, uint32_t argc, jsval *vp)
{
	const char* ret = cocos2d::CCMenuItemFont::fontName();
	jsval jsret;
	jsret = c_string_to_jsval(cx, ret);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemFont_fontSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	unsigned int ret = cocos2d::CCMenuItemFont::fontSize();
	jsval jsret;
	jsret = UINT_TO_JSVAL(ret);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemFont_setFontSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	unsigned int arg0;
	assert(argc >= 1);

	JS_ValueToECMAUint32(cx, argv[0], &arg0);
	cocos2d::CCMenuItemFont::setFontSize(arg0);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemFont_itemWithString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCMenuItemFont* ret = cocos2d::CCMenuItemFont::itemWithString(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemFont>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemFont_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemFont* cobj = new cocos2d::CCMenuItemFont();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemFont> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemFont");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemFont_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemFont(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemFont_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemFont_class->name = "MenuItemFont";
	js_cocos2dx_CCMenuItemFont_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemFont_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemFont_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemFont_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemFont_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemFont_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemFont_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemFont_class->finalize = js_cocos2dx_CCMenuItemFont_finalize;
	js_cocos2dx_CCMenuItemFont_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setFontName", js_cocos2dx_CCMenuItemFont_setFontNameObj, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("fontName", js_cocos2dx_CCMenuItemFont_fontNameObj, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFontSize", js_cocos2dx_CCMenuItemFont_setFontSizeObj, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("fontSize", js_cocos2dx_CCMenuItemFont_fontSizeObj, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("setFontName", js_cocos2dx_CCMenuItemFont_setFontName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("fontName", js_cocos2dx_CCMenuItemFont_fontName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("fontSize", js_cocos2dx_CCMenuItemFont_fontSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setFontSize", js_cocos2dx_CCMenuItemFont_setFontSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("itemWithString", js_cocos2dx_CCMenuItemFont_itemWithString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemFont_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItemLabel_prototype,
		js_cocos2dx_CCMenuItemFont_class,
		js_cocos2dx_CCMenuItemFont_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemFont", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemFont> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemFont_class;
		p->proto = js_cocos2dx_CCMenuItemFont_prototype;
		p->parentProto = js_cocos2dx_CCMenuItemLabel_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemSprite_class;
JSObject *js_cocos2dx_CCMenuItemSprite_prototype;

JSBool js_cocos2dx_CCMenuItemSprite_setEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_selected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->selected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_setNormalImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setNormalImage(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_setDisabledImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setDisabledImage(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_setSelectedImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setSelectedImage(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_getDisabledImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getDisabledImage();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_getSelectedImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getSelectedImage();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_getNormalImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCNode* ret = cobj->getNormalImage();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_unselected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemSprite* cobj = (cocos2d::CCMenuItemSprite *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unselected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemSprite_itemWithNormalSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCNode* arg0;
	cocos2d::CCNode* arg1;
	cocos2d::CCNode* arg2;
	assert(argc >= 3);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg2 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg2)
		} while (0);
	cocos2d::CCMenuItemSprite* ret = cocos2d::CCMenuItemSprite::itemWithNormalSprite(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemSprite>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemSprite_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemSprite* cobj = new cocos2d::CCMenuItemSprite();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemSprite> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemSprite");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemSprite_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemSprite(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemSprite_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemSprite_class->name = "MenuItemSprite";
	js_cocos2dx_CCMenuItemSprite_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemSprite_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemSprite_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemSprite_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemSprite_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemSprite_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemSprite_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemSprite_class->finalize = js_cocos2dx_CCMenuItemSprite_finalize;
	js_cocos2dx_CCMenuItemSprite_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setEnabled", js_cocos2dx_CCMenuItemSprite_setEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("selected", js_cocos2dx_CCMenuItemSprite_selected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCMenuItemSprite_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setNormalImage", js_cocos2dx_CCMenuItemSprite_setNormalImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisabledImage", js_cocos2dx_CCMenuItemSprite_setDisabledImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCMenuItemSprite_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSelectedImage", js_cocos2dx_CCMenuItemSprite_setSelectedImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDisabledImage", js_cocos2dx_CCMenuItemSprite_getDisabledImage, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCMenuItemSprite_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSelectedImage", js_cocos2dx_CCMenuItemSprite_getSelectedImage, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getNormalImage", js_cocos2dx_CCMenuItemSprite_getNormalImage, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCMenuItemSprite_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unselected", js_cocos2dx_CCMenuItemSprite_unselected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("itemWithNormalSprite", js_cocos2dx_CCMenuItemSprite_itemWithNormalSprite, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemSprite_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItem_prototype,
		js_cocos2dx_CCMenuItemSprite_class,
		js_cocos2dx_CCMenuItemSprite_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemSprite", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemSprite> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemSprite_class;
		p->proto = js_cocos2dx_CCMenuItemSprite_prototype;
		p->parentProto = js_cocos2dx_CCMenuItem_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemImage_class;
JSObject *js_cocos2dx_CCMenuItemImage_prototype;

JSBool js_cocos2dx_CCMenuItemImage_setDisabledSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemImage* cobj = (cocos2d::CCMenuItemImage *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setDisabledSpriteFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemImage_setSelectedSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemImage* cobj = (cocos2d::CCMenuItemImage *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setSelectedSpriteFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemImage_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemImage* cobj = (cocos2d::CCMenuItemImage *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemImage_setNormalSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemImage* cobj = (cocos2d::CCMenuItemImage *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setNormalSpriteFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemImage_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCMenuItemImage* ret = cocos2d::CCMenuItemImage::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemImage>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemImage_itemWithNormalImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		const char* arg2;
		std::string arg2_tmp = jsval_to_std_string(cx, argv[2]); arg2 = arg2_tmp.c_str();
		cocos2d::CCMenuItemImage* ret = cocos2d::CCMenuItemImage::itemWithNormalImage(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemImage>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cocos2d::CCMenuItemImage* ret = cocos2d::CCMenuItemImage::itemWithNormalImage(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemImage>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemImage_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemImage* cobj = new cocos2d::CCMenuItemImage();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemImage> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemImage");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemImage_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemImage(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemImage_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemImage_class->name = "MenuItemImage";
	js_cocos2dx_CCMenuItemImage_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemImage_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemImage_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemImage_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemImage_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemImage_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemImage_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemImage_class->finalize = js_cocos2dx_CCMenuItemImage_finalize;
	js_cocos2dx_CCMenuItemImage_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("setDisabledSpriteFrame", js_cocos2dx_CCMenuItemImage_setDisabledSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSelectedSpriteFrame", js_cocos2dx_CCMenuItemImage_setSelectedSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCMenuItemImage_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setNormalSpriteFrame", js_cocos2dx_CCMenuItemImage_setNormalSpriteFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCMenuItemImage_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("itemWithNormalImage", js_cocos2dx_CCMenuItemImage_itemWithNormalImage, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemImage_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItemSprite_prototype,
		js_cocos2dx_CCMenuItemImage_class,
		js_cocos2dx_CCMenuItemImage_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemImage", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemImage> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemImage_class;
		p->proto = js_cocos2dx_CCMenuItemImage_prototype;
		p->parentProto = js_cocos2dx_CCMenuItemSprite_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenuItemToggle_class;
JSObject *js_cocos2dx_CCMenuItemToggle_prototype;

JSBool js_cocos2dx_CCMenuItemToggle_setSubItems(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setSubItems(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_initWithItem(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCMenuItem* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCMenuItem*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithItem(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_setSelectedIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setSelectedIndex(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_setEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_getSelectedIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getSelectedIndex();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_addSubItem(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCMenuItem* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCMenuItem*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addSubItem(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_activate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->activate();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_selected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->selected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_unselected(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unselected();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_selectedItem(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCMenuItem* ret = cobj->selectedItem();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItem>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenuItemToggle* cobj = (cocos2d::CCMenuItemToggle *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenuItemToggle_itemWithItem(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCMenuItem* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCMenuItem*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCMenuItemToggle* ret = cocos2d::CCMenuItemToggle::itemWithItem(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenuItemToggle>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenuItemToggle_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenuItemToggle* cobj = new cocos2d::CCMenuItemToggle();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenuItemToggle> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenuItemToggle");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenuItemToggle_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenuItemToggle(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenuItemToggle_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenuItemToggle_class->name = "MenuItemToggle";
	js_cocos2dx_CCMenuItemToggle_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemToggle_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemToggle_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenuItemToggle_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenuItemToggle_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenuItemToggle_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenuItemToggle_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenuItemToggle_class->finalize = js_cocos2dx_CCMenuItemToggle_finalize;
	js_cocos2dx_CCMenuItemToggle_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setSubItems", js_cocos2dx_CCMenuItemToggle_setSubItems, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithItem", js_cocos2dx_CCMenuItemToggle_initWithItem, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSelectedIndex", js_cocos2dx_CCMenuItemToggle_setSelectedIndex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEnabled", js_cocos2dx_CCMenuItemToggle_setEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSelectedIndex", js_cocos2dx_CCMenuItemToggle_getSelectedIndex, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addSubItem", js_cocos2dx_CCMenuItemToggle_addSubItem, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCMenuItemToggle_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("activate", js_cocos2dx_CCMenuItemToggle_activate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("selected", js_cocos2dx_CCMenuItemToggle_selected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCMenuItemToggle_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCMenuItemToggle_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unselected", js_cocos2dx_CCMenuItemToggle_unselected, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("selectedItem", js_cocos2dx_CCMenuItemToggle_selectedItem, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCMenuItemToggle_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("itemWithItem", js_cocos2dx_CCMenuItemToggle_itemWithItem, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenuItemToggle_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCMenuItem_prototype,
		js_cocos2dx_CCMenuItemToggle_class,
		js_cocos2dx_CCMenuItemToggle_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "MenuItemToggle", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenuItemToggle> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenuItemToggle_class;
		p->proto = js_cocos2dx_CCMenuItemToggle_prototype;
		p->parentProto = js_cocos2dx_CCMenuItem_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCMenu_class;
JSObject *js_cocos2dx_CCMenu_prototype;

JSBool js_cocos2dx_CCMenu_initWithArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		bool ret = cobj->initWithArray(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCMenu* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->addChild(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addChild(arg0);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_alignItemsVertically(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->alignItemsVertically();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_ccTouchBegan(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		bool ret = cobj->ccTouchBegan(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_ccTouchEnded(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchEnded(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_isEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isEnabled();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_setHandlerPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setHandlerPriority(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_alignItemsHorizontallyWithPadding(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->alignItemsHorizontallyWithPadding(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_ccTouchMoved(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchMoved(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_alignItemsHorizontally(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->alignItemsHorizontally();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_setEnabled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setEnabled(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_ccTouchCancelled(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTouch* arg0;
		cocos2d::CCEvent* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTouch*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCEvent*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->ccTouchCancelled(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_alignItemsVerticallyWithPadding(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->alignItemsVerticallyWithPadding(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_registerWithTouchDispatcher(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCMenu* cobj = (cocos2d::CCMenu *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->registerWithTouchDispatcher();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCMenu_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCMenu* ret = cocos2d::CCMenu::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenu>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenu_menuWithArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCArray* arg0;
	assert(argc >= 1);

	arg0 = jsval_to_ccarray(cx, argv[0]);
	cocos2d::CCMenu* ret = cocos2d::CCMenu::menuWithArray(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenu>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenu_menuWithItem(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCMenuItem* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCMenuItem*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCMenu* ret = cocos2d::CCMenu::menuWithItem(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCMenu>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCMenu_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCMenu* cobj = new cocos2d::CCMenu();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCMenu> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCMenu");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCMenu_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCMenu(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCMenu_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCMenu_class->name = "Menu";
	js_cocos2dx_CCMenu_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCMenu_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCMenu_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCMenu_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCMenu_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCMenu_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCMenu_class->convert = JS_ConvertStub;
	js_cocos2dx_CCMenu_class->finalize = js_cocos2dx_CCMenu_finalize;
	js_cocos2dx_CCMenu_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithArray", js_cocos2dx_CCMenu_initWithArray, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addChild", js_cocos2dx_CCMenu_addChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("alignItemsVertically", js_cocos2dx_CCMenu_alignItemsVertically, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchBegan", js_cocos2dx_CCMenu_ccTouchBegan, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchEnded", js_cocos2dx_CCMenu_ccTouchEnded, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isEnabled", js_cocos2dx_CCMenu_isEnabled, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCMenu_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setHandlerPriority", js_cocos2dx_CCMenu_setHandlerPriority, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCMenu_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("alignItemsHorizontallyWithPadding", js_cocos2dx_CCMenu_alignItemsHorizontallyWithPadding, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchMoved", js_cocos2dx_CCMenu_ccTouchMoved, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCMenu_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("alignItemsHorizontally", js_cocos2dx_CCMenu_alignItemsHorizontally, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEnabled", js_cocos2dx_CCMenu_setEnabled, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCMenu_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCMenu_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("ccTouchCancelled", js_cocos2dx_CCMenu_ccTouchCancelled, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("alignItemsVerticallyWithPadding", js_cocos2dx_CCMenu_alignItemsVerticallyWithPadding, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("registerWithTouchDispatcher", js_cocos2dx_CCMenu_registerWithTouchDispatcher, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCMenu_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("menuWithArray", js_cocos2dx_CCMenu_menuWithArray, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("menuWithItem", js_cocos2dx_CCMenu_menuWithItem, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCMenu_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCLayer_prototype,
		js_cocos2dx_CCMenu_class,
		js_cocos2dx_CCMenu_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Menu", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCMenu> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCMenu_class;
		p->proto = js_cocos2dx_CCMenu_prototype;
		p->parentProto = js_cocos2dx_CCLayer_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCProgressTimer_class;
JSObject *js_cocos2dx_CCProgressTimer_prototype;

JSBool js_cocos2dx_CCProgressTimer_setAnchorPoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setAnchorPoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setBarChangeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setBarChangeRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setReverseDirection(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCProgressTimer* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setReverseDirection(arg0);
		return JS_TRUE;
	}
	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setReverseProgress(arg0);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setPercentage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setPercentage(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setType(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCProgressTimerType arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setType(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getPercentage(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getPercentage();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setSprite(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		uint16_t arg0;
		JS_ValueToUint16(cx, argv[0], &arg0);
		cobj->setOpacity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSprite* ret = cobj->getSprite();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setMidpoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setMidpoint(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getOpacity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned char ret = cobj->getOpacity();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getMidpoint(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getMidpoint();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor3B ret = cobj->getColor();
		jsval jsret;
		jsret = cccolor3b_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getType(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCProgressTimerType ret = cobj->getType();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_isReverseDirection(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isReverseDirection();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_setColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor3B arg0;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		cobj->setColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_getBarChangeRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getBarChangeRate();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_initWithSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCProgressTimer* cobj = (cocos2d::CCProgressTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithSprite(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCProgressTimer_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCSprite* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCProgressTimer* ret = cocos2d::CCProgressTimer::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressTimer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCProgressTimer_progressWithSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCSprite* arg0;
	assert(argc >= 1);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	cocos2d::CCProgressTimer* ret = cocos2d::CCProgressTimer::progressWithSprite(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCProgressTimer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCProgressTimer_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCProgressTimer* cobj = new cocos2d::CCProgressTimer();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCProgressTimer> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCProgressTimer");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCProgressTimer_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCProgressTimer(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCProgressTimer_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCProgressTimer_class->name = "ProgressTimer";
	js_cocos2dx_CCProgressTimer_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTimer_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTimer_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCProgressTimer_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCProgressTimer_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCProgressTimer_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCProgressTimer_class->convert = JS_ConvertStub;
	js_cocos2dx_CCProgressTimer_class->finalize = js_cocos2dx_CCProgressTimer_finalize;
	js_cocos2dx_CCProgressTimer_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setAnchorPoint", js_cocos2dx_CCProgressTimer_setAnchorPoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBarChangeRate", js_cocos2dx_CCProgressTimer_setBarChangeRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setReverseDirection", js_cocos2dx_CCProgressTimer_setReverseDirection, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setPercentage", js_cocos2dx_CCProgressTimer_setPercentage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setType", js_cocos2dx_CCProgressTimer_setType, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPercentage", js_cocos2dx_CCProgressTimer_getPercentage, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSprite", js_cocos2dx_CCProgressTimer_setSprite, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOpacity", js_cocos2dx_CCProgressTimer_setOpacity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSprite", js_cocos2dx_CCProgressTimer_getSprite, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMidpoint", js_cocos2dx_CCProgressTimer_setMidpoint, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOpacity", js_cocos2dx_CCProgressTimer_getOpacity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMidpoint", js_cocos2dx_CCProgressTimer_getMidpoint, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCProgressTimer_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getColor", js_cocos2dx_CCProgressTimer_getColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getType", js_cocos2dx_CCProgressTimer_getType, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isReverseDirection", js_cocos2dx_CCProgressTimer_isReverseDirection, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setColor", js_cocos2dx_CCProgressTimer_setColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getBarChangeRate", js_cocos2dx_CCProgressTimer_getBarChangeRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithSprite", js_cocos2dx_CCProgressTimer_initWithSprite, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCProgressTimer_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("progressWithSprite", js_cocos2dx_CCProgressTimer_progressWithSprite, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCProgressTimer_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCProgressTimer_class,
		js_cocos2dx_CCProgressTimer_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ProgressTimer", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCProgressTimer> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCProgressTimer_class;
		p->proto = js_cocos2dx_CCProgressTimer_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCRenderTexture_class;
JSObject *js_cocos2dx_CCRenderTexture_prototype;

JSBool js_cocos2dx_CCRenderTexture_begin(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->begin();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_end(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->end();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_clearStencil(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->clearStencil(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_listenToBackground(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->listenToBackground(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_setSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSprite* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSprite*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setSprite(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_getSprite(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSprite* ret = cobj->getSprite();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_clear(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		double arg0;
		double arg1;
		double arg2;
		double arg3;
		JS_ValueToNumber(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToNumber(cx, argv[2], &arg2);
		JS_ValueToNumber(cx, argv[3], &arg3);
		cobj->clear(arg0, arg1, arg2, arg3);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_beginWithClear(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCRenderTexture* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 5) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		double arg3;
		JS_ValueToNumber(cx, argv[3], &arg3);
		double arg4;
		JS_ValueToNumber(cx, argv[4], &arg4);
		cobj->beginWithClear(arg0, arg1, arg2, arg3, arg4);
		return JS_TRUE;
	}
	if (argc == 4) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		double arg3;
		JS_ValueToNumber(cx, argv[3], &arg3);
		cobj->beginWithClear(arg0, arg1, arg2, arg3);
		return JS_TRUE;
	}
	if (argc == 6) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		double arg1;
		JS_ValueToNumber(cx, argv[1], &arg1);
		double arg2;
		JS_ValueToNumber(cx, argv[2], &arg2);
		double arg3;
		JS_ValueToNumber(cx, argv[3], &arg3);
		double arg4;
		JS_ValueToNumber(cx, argv[4], &arg4);
		int arg5;
		JS_ValueToInt32(cx, argv[5], (int32_t *)&arg5);
		cobj->beginWithClear(arg0, arg1, arg2, arg3, arg4, arg5);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_endToLua(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->endToLua();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_saveToFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCRenderTexture* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::tCCImageFormat arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		bool ret = cobj->saveToFile(arg0, arg1);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->saveToFile(arg0);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_newCCImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCImage* ret = cobj->newCCImage();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCImage>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_clearDepth(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCRenderTexture* cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->clearDepth(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_initWithWidthAndHeight(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCRenderTexture* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCRenderTexture *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		bool ret = cobj->initWithWidthAndHeight(arg0, arg1, arg2, arg3);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 3) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		bool ret = cobj->initWithWidthAndHeight(arg0, arg1, arg2);
		jsval jsret; jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_renderTextureWithWidthAndHeight(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::renderTextureWithWidthAndHeight(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 4) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::renderTextureWithWidthAndHeight(arg0, arg1, arg2, arg3);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::renderTextureWithWidthAndHeight(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 3) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::create(arg0, arg1, arg2);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 4) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCTexture2DPixelFormat arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		unsigned int arg3;
		JS_ValueToECMAUint32(cx, argv[3], &arg3);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::create(arg0, arg1, arg2, arg3);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cocos2d::CCRenderTexture* ret = cocos2d::CCRenderTexture::create(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCRenderTexture>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCRenderTexture_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCRenderTexture* cobj = new cocos2d::CCRenderTexture();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCRenderTexture> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCRenderTexture");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCRenderTexture_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCRenderTexture(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCRenderTexture_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCRenderTexture_class->name = "RenderTexture";
	js_cocos2dx_CCRenderTexture_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCRenderTexture_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCRenderTexture_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCRenderTexture_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCRenderTexture_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCRenderTexture_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCRenderTexture_class->convert = JS_ConvertStub;
	js_cocos2dx_CCRenderTexture_class->finalize = js_cocos2dx_CCRenderTexture_finalize;
	js_cocos2dx_CCRenderTexture_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("begin", js_cocos2dx_CCRenderTexture_begin, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("end", js_cocos2dx_CCRenderTexture_end, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("clearStencil", js_cocos2dx_CCRenderTexture_clearStencil, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("listenToBackground", js_cocos2dx_CCRenderTexture_listenToBackground, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSprite", js_cocos2dx_CCRenderTexture_setSprite, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSprite", js_cocos2dx_CCRenderTexture_getSprite, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("clear", js_cocos2dx_CCRenderTexture_clear, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("beginWithClear", js_cocos2dx_CCRenderTexture_beginWithClear, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("endToLua", js_cocos2dx_CCRenderTexture_endToLua, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("saveToFile", js_cocos2dx_CCRenderTexture_saveToFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("newCCImage", js_cocos2dx_CCRenderTexture_newCCImage, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("clearDepth", js_cocos2dx_CCRenderTexture_clearDepth, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithWidthAndHeight", js_cocos2dx_CCRenderTexture_initWithWidthAndHeight, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("renderTextureWithWidthAndHeight", js_cocos2dx_CCRenderTexture_renderTextureWithWidthAndHeight, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCRenderTexture_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCRenderTexture_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCRenderTexture_class,
		js_cocos2dx_CCRenderTexture_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "RenderTexture", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCRenderTexture> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCRenderTexture_class;
		p->proto = js_cocos2dx_CCRenderTexture_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleBatchNode_class;
JSObject *js_cocos2dx_CCParticleBatchNode_prototype;

JSBool js_cocos2dx_CCParticleBatchNode_removeChildAtIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		unsigned int arg0;
		JSBool arg1;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChildAtIndex(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCParticleBatchNode* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->addChild(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addChild(arg0);
		return JS_TRUE;
	}
	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		int arg1;
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_draw(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->draw();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_initWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		unsigned int arg1;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithFile(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_disableParticle(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->disableParticle(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_getTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2D* ret = cobj->getTexture();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_visit(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->visit();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_removeAllChildrenWithCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeAllChildrenWithCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_getTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTextureAtlas* ret = cobj->getTextureAtlas();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTextureAtlas>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_insertChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCParticleSystem* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCParticleSystem*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cobj->insertChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_initWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		unsigned int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		bool ret = cobj->initWithTexture(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_reorderChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		int arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		cobj->reorderChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_setTextureAtlas(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleBatchNode* cobj = (cocos2d::CCParticleBatchNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTextureAtlas* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTextureAtlas*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTextureAtlas(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleBatchNode_batchNodeWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTexture2D* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCParticleBatchNode* ret = cocos2d::CCParticleBatchNode::batchNodeWithTexture(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleBatchNode_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCParticleBatchNode* ret = cocos2d::CCParticleBatchNode::create(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleBatchNode_createWithTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTexture2D* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCParticleBatchNode* ret = cocos2d::CCParticleBatchNode::createWithTexture(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleBatchNode_batchNodeWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	unsigned int arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	JS_ValueToECMAUint32(cx, argv[1], &arg1);
	cocos2d::CCParticleBatchNode* ret = cocos2d::CCParticleBatchNode::batchNodeWithFile(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleBatchNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleBatchNode_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleBatchNode* cobj = new cocos2d::CCParticleBatchNode();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleBatchNode> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleBatchNode");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleBatchNode_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleBatchNode(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleBatchNode_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleBatchNode_class->name = "ParticleBatchNode";
	js_cocos2dx_CCParticleBatchNode_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleBatchNode_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleBatchNode_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleBatchNode_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleBatchNode_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleBatchNode_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleBatchNode_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleBatchNode_class->finalize = js_cocos2dx_CCParticleBatchNode_finalize;
	js_cocos2dx_CCParticleBatchNode_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("removeChildAtIndex", js_cocos2dx_CCParticleBatchNode_removeChildAtIndex, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addChild", js_cocos2dx_CCParticleBatchNode_addChild, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("draw", js_cocos2dx_CCParticleBatchNode_draw, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexture", js_cocos2dx_CCParticleBatchNode_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithFile", js_cocos2dx_CCParticleBatchNode_initWithFile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("disableParticle", js_cocos2dx_CCParticleBatchNode_disableParticle, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTexture", js_cocos2dx_CCParticleBatchNode_getTexture, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("visit", js_cocos2dx_CCParticleBatchNode_visit, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllChildrenWithCleanup", js_cocos2dx_CCParticleBatchNode_removeAllChildrenWithCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTextureAtlas", js_cocos2dx_CCParticleBatchNode_getTextureAtlas, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCParticleBatchNode_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("insertChild", js_cocos2dx_CCParticleBatchNode_insertChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTexture", js_cocos2dx_CCParticleBatchNode_initWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reorderChild", js_cocos2dx_CCParticleBatchNode_reorderChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureAtlas", js_cocos2dx_CCParticleBatchNode_setTextureAtlas, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("batchNodeWithTexture", js_cocos2dx_CCParticleBatchNode_batchNodeWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleBatchNode_create, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTexture", js_cocos2dx_CCParticleBatchNode_createWithTexture, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("batchNodeWithFile", js_cocos2dx_CCParticleBatchNode_batchNodeWithFile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleBatchNode_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCParticleBatchNode_class,
		js_cocos2dx_CCParticleBatchNode_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleBatchNode", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleBatchNode> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleBatchNode_class;
		p->proto = js_cocos2dx_CCParticleBatchNode_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSystem_class;
JSObject *js_cocos2dx_CCParticleSystem_prototype;

JSBool js_cocos2dx_CCParticleSystem_getStartSizeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartSizeVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTexture2D* ret = cobj->getTexture();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_isFull(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isFull();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getBatchNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCParticleBatchNode* ret = cobj->getBatchNode();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleBatchNode>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor4F ret = cobj->getStartColor();
		jsval jsret;
		jsret = cccolor4f_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getPositionType(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::tCCPositionType ret = cobj->getPositionType();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setPosVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setPosVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndSpin(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndSpin();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setRotatePerSecondVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRotatePerSecondVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartSpinVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartSpinVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndSpinVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndSpinVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_stopSystem(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stopSystem();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndSizeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndSizeVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setRotation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRotation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setTangentialAccel(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setTangentialAccel(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setScaleY(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleY(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setScaleX(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScaleX(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getRadialAccel(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRadialAccel();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartRadius(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartRadius(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setRotatePerSecond(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRotatePerSecond(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getGravity(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getGravity();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getTangentialAccel(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getTangentialAccel();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndRadius(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndRadius(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getAngle(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAngle();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getSpeed(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSpeed();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor4F arg0;
		arg0 = jsval_to_cccolor4f(cx, argv[0]);
		cobj->setEndColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartSpin(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartSpin(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setDuration(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getPosVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPosVar();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_updateWithNoTime(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->updateWithNoTime();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_isBlendAdditive(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isBlendAdditive();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getAngleVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getAngleVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setPositionType(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::tCCPositionType arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setPositionType(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndRadius(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndRadius();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getSourcePosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getSourcePosition();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setLifeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setLifeVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setTotalParticles(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndColorVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor4F arg0;
		arg0 = jsval_to_cccolor4f(cx, argv[0]);
		cobj->setEndColorVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_updateQuadWithParticle(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		tCCParticle* arg0;
		cocos2d::CCPoint arg1;
		#pragma warning NO CONVERSION TO NATIVE FOR tCCParticle*;
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		cobj->updateQuadWithParticle(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getAtlasIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getAtlasIndex();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartSize();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartSpinVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartSpinVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_resetSystem(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->resetSystem();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setAtlasIndex(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setAtlasIndex(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setTangentialAccelVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setTangentialAccelVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndRadiusVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndRadiusVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_isActive(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isActive();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setRadialAccelVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRadialAccelVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setSpeed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSpeed(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartSpin(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartSpin();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getRotatePerSecond(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRotatePerSecond();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_initParticle(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		tCCParticle* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR tCCParticle*;
		cobj->initParticle(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEmitterMode(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setEmitterMode(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getDuration(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getDuration();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setSourcePosition(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setSourcePosition(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getRadialAccelVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRadialAccelVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setBlendAdditive(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setBlendAdditive(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setLife(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setLife(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setAngleVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAngleVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndSizeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndSizeVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setAngle(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setAngle(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setBatchNode(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCParticleBatchNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCParticleBatchNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setBatchNode(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getTangentialAccelVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getTangentialAccelVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEmitterMode(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getEmitterMode();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndSpinVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndSpinVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_initWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithFile(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getSpeedVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getSpeedVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor4F arg0;
		arg0 = jsval_to_cccolor4f(cx, argv[0]);
		cobj->setStartColor(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getRotatePerSecondVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getRotatePerSecondVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndSize();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getLife(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getLife();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setSpeedVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setSpeedVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setAutoRemoveOnFinish(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setAutoRemoveOnFinish(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setGravity(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setGravity(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_postStep(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->postStep();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEmissionRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEmissionRate(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndColorVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor4F ret = cobj->getEndColorVar();
		jsval jsret;
		jsret = cccolor4f_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setScale(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEmissionRate(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEmissionRate();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndColor(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor4F ret = cobj->getEndColor();
		jsval jsret;
		jsret = cccolor4f_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getLifeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getLifeVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartSizeVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartSizeVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_addParticle(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->addParticle();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartRadius(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartRadius();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getParticleCount(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getParticleCount();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartRadiusVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getStartRadiusVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartColorVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccColor4F arg0;
		arg0 = jsval_to_cccolor4f(cx, argv[0]);
		cobj->setStartColorVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setEndSpin(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEndSpin(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setRadialAccel(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setRadialAccel(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_initWithDictionary(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->initWithDictionary(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_isAutoRemoveOnFinish(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isAutoRemoveOnFinish();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getTotalParticles();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_setStartRadiusVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setStartRadiusVar(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getEndRadiusVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEndRadiusVar();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_getStartColorVar(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystem* cobj = (cocos2d::CCParticleSystem *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::ccColor4F ret = cobj->getStartColorVar();
		jsval jsret;
		jsret = cccolor4f_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystem_particleWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCParticleSystem* ret = cocos2d::CCParticleSystem::particleWithFile(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystem>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSystem_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCParticleSystem* ret = cocos2d::CCParticleSystem::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystem>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSystem_createWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	unsigned int arg0;
	assert(argc >= 1);

	JS_ValueToECMAUint32(cx, argv[0], &arg0);
	cocos2d::CCParticleSystem* ret = cocos2d::CCParticleSystem::createWithTotalParticles(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystem>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSystem_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSystem* cobj = new cocos2d::CCParticleSystem();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSystem> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSystem");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSystem_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSystem(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSystem_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSystem_class->name = "ParticleSystem";
	js_cocos2dx_CCParticleSystem_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystem_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystem_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystem_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSystem_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSystem_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSystem_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSystem_class->finalize = js_cocos2dx_CCParticleSystem_finalize;
	js_cocos2dx_CCParticleSystem_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getStartSizeVar", js_cocos2dx_CCParticleSystem_getStartSizeVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTexture", js_cocos2dx_CCParticleSystem_getTexture, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isFull", js_cocos2dx_CCParticleSystem_isFull, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getBatchNode", js_cocos2dx_CCParticleSystem_getBatchNode, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartColor", js_cocos2dx_CCParticleSystem_getStartColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPositionType", js_cocos2dx_CCParticleSystem_getPositionType, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setPosVar", js_cocos2dx_CCParticleSystem_setPosVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndSpin", js_cocos2dx_CCParticleSystem_getEndSpin, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRotatePerSecondVar", js_cocos2dx_CCParticleSystem_setRotatePerSecondVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartSpinVar", js_cocos2dx_CCParticleSystem_getStartSpinVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndSpinVar", js_cocos2dx_CCParticleSystem_getEndSpinVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopSystem", js_cocos2dx_CCParticleSystem_stopSystem, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCParticleSystem_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndSizeVar", js_cocos2dx_CCParticleSystem_getEndSizeVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRotation", js_cocos2dx_CCParticleSystem_setRotation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTangentialAccel", js_cocos2dx_CCParticleSystem_setTangentialAccel, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleY", js_cocos2dx_CCParticleSystem_setScaleY, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScaleX", js_cocos2dx_CCParticleSystem_setScaleX, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRadialAccel", js_cocos2dx_CCParticleSystem_getRadialAccel, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartRadius", js_cocos2dx_CCParticleSystem_setStartRadius, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRotatePerSecond", js_cocos2dx_CCParticleSystem_setRotatePerSecond, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndSize", js_cocos2dx_CCParticleSystem_setEndSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getGravity", js_cocos2dx_CCParticleSystem_getGravity, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTangentialAccel", js_cocos2dx_CCParticleSystem_getTangentialAccel, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndRadius", js_cocos2dx_CCParticleSystem_setEndRadius, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAngle", js_cocos2dx_CCParticleSystem_getAngle, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSpeed", js_cocos2dx_CCParticleSystem_getSpeed, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndColor", js_cocos2dx_CCParticleSystem_setEndColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartSpin", js_cocos2dx_CCParticleSystem_setStartSpin, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDuration", js_cocos2dx_CCParticleSystem_setDuration, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleSystem_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTexture", js_cocos2dx_CCParticleSystem_setTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPosVar", js_cocos2dx_CCParticleSystem_getPosVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateWithNoTime", js_cocos2dx_CCParticleSystem_updateWithNoTime, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isBlendAdditive", js_cocos2dx_CCParticleSystem_isBlendAdditive, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAngleVar", js_cocos2dx_CCParticleSystem_getAngleVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setPositionType", js_cocos2dx_CCParticleSystem_setPositionType, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndRadius", js_cocos2dx_CCParticleSystem_getEndRadius, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSourcePosition", js_cocos2dx_CCParticleSystem_getSourcePosition, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLifeVar", js_cocos2dx_CCParticleSystem_setLifeVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTotalParticles", js_cocos2dx_CCParticleSystem_setTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndColorVar", js_cocos2dx_CCParticleSystem_setEndColorVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("updateQuadWithParticle", js_cocos2dx_CCParticleSystem_updateQuadWithParticle, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getAtlasIndex", js_cocos2dx_CCParticleSystem_getAtlasIndex, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartSize", js_cocos2dx_CCParticleSystem_getStartSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartSpinVar", js_cocos2dx_CCParticleSystem_setStartSpinVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resetSystem", js_cocos2dx_CCParticleSystem_resetSystem, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAtlasIndex", js_cocos2dx_CCParticleSystem_setAtlasIndex, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTangentialAccelVar", js_cocos2dx_CCParticleSystem_setTangentialAccelVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndRadiusVar", js_cocos2dx_CCParticleSystem_setEndRadiusVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isActive", js_cocos2dx_CCParticleSystem_isActive, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRadialAccelVar", js_cocos2dx_CCParticleSystem_setRadialAccelVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartSize", js_cocos2dx_CCParticleSystem_setStartSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSpeed", js_cocos2dx_CCParticleSystem_setSpeed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartSpin", js_cocos2dx_CCParticleSystem_getStartSpin, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRotatePerSecond", js_cocos2dx_CCParticleSystem_getRotatePerSecond, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initParticle", js_cocos2dx_CCParticleSystem_initParticle, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEmitterMode", js_cocos2dx_CCParticleSystem_setEmitterMode, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getDuration", js_cocos2dx_CCParticleSystem_getDuration, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSourcePosition", js_cocos2dx_CCParticleSystem_setSourcePosition, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRadialAccelVar", js_cocos2dx_CCParticleSystem_getRadialAccelVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBlendAdditive", js_cocos2dx_CCParticleSystem_setBlendAdditive, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLife", js_cocos2dx_CCParticleSystem_setLife, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAngleVar", js_cocos2dx_CCParticleSystem_setAngleVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndSizeVar", js_cocos2dx_CCParticleSystem_setEndSizeVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAngle", js_cocos2dx_CCParticleSystem_setAngle, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBatchNode", js_cocos2dx_CCParticleSystem_setBatchNode, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTangentialAccelVar", js_cocos2dx_CCParticleSystem_getTangentialAccelVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEmitterMode", js_cocos2dx_CCParticleSystem_getEmitterMode, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndSpinVar", js_cocos2dx_CCParticleSystem_setEndSpinVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithFile", js_cocos2dx_CCParticleSystem_initWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSpeedVar", js_cocos2dx_CCParticleSystem_getSpeedVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartColor", js_cocos2dx_CCParticleSystem_setStartColor, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getRotatePerSecondVar", js_cocos2dx_CCParticleSystem_getRotatePerSecondVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndSize", js_cocos2dx_CCParticleSystem_getEndSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLife", js_cocos2dx_CCParticleSystem_getLife, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setSpeedVar", js_cocos2dx_CCParticleSystem_setSpeedVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setAutoRemoveOnFinish", js_cocos2dx_CCParticleSystem_setAutoRemoveOnFinish, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setGravity", js_cocos2dx_CCParticleSystem_setGravity, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("postStep", js_cocos2dx_CCParticleSystem_postStep, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEmissionRate", js_cocos2dx_CCParticleSystem_setEmissionRate, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndColorVar", js_cocos2dx_CCParticleSystem_getEndColorVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setScale", js_cocos2dx_CCParticleSystem_setScale, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEmissionRate", js_cocos2dx_CCParticleSystem_getEmissionRate, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndColor", js_cocos2dx_CCParticleSystem_getEndColor, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLifeVar", js_cocos2dx_CCParticleSystem_getLifeVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartSizeVar", js_cocos2dx_CCParticleSystem_setStartSizeVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addParticle", js_cocos2dx_CCParticleSystem_addParticle, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartRadius", js_cocos2dx_CCParticleSystem_getStartRadius, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getParticleCount", js_cocos2dx_CCParticleSystem_getParticleCount, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartRadiusVar", js_cocos2dx_CCParticleSystem_getStartRadiusVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartColorVar", js_cocos2dx_CCParticleSystem_setStartColorVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEndSpin", js_cocos2dx_CCParticleSystem_setEndSpin, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCParticleSystem_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setRadialAccel", js_cocos2dx_CCParticleSystem_setRadialAccel, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithDictionary", js_cocos2dx_CCParticleSystem_initWithDictionary, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isAutoRemoveOnFinish", js_cocos2dx_CCParticleSystem_isAutoRemoveOnFinish, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTotalParticles", js_cocos2dx_CCParticleSystem_getTotalParticles, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStartRadiusVar", js_cocos2dx_CCParticleSystem_setStartRadiusVar, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEndRadiusVar", js_cocos2dx_CCParticleSystem_getEndRadiusVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStartColorVar", js_cocos2dx_CCParticleSystem_getStartColorVar, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("particleWithFile", js_cocos2dx_CCParticleSystem_particleWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleSystem_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTotalParticles", js_cocos2dx_CCParticleSystem_createWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSystem_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCParticleSystem_class,
		js_cocos2dx_CCParticleSystem_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSystem", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSystem> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSystem_class;
		p->proto = js_cocos2dx_CCParticleSystem_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSystemQuad_class;
JSObject *js_cocos2dx_CCParticleSystemQuad_prototype;

JSBool js_cocos2dx_CCParticleSystemQuad_initTexCoordsWithRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystemQuad* cobj = (cocos2d::CCParticleSystemQuad *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCRect arg0;
		arg0 = jsval_to_ccrect(cx, argv[0]);
		cobj->initTexCoordsWithRect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystemQuad_setTextureWithRect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystemQuad* cobj = (cocos2d::CCParticleSystemQuad *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCTexture2D* arg0;
		cocos2d::CCRect arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		arg1 = jsval_to_ccrect(cx, argv[1]);
		cobj->setTextureWithRect(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystemQuad_setDisplayFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSystemQuad* cobj = (cocos2d::CCParticleSystemQuad *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSpriteFrame* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setDisplayFrame(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystemQuad_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	if (argc == 0) {
		cocos2d::CCParticleSystemQuad* ret = cocos2d::CCParticleSystemQuad::create();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystemQuad>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCParticleSystemQuad* ret = cocos2d::CCParticleSystemQuad::create(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystemQuad>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSystemQuad_createWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	unsigned int arg0;
	assert(argc >= 1);

	JS_ValueToECMAUint32(cx, argv[0], &arg0);
	cocos2d::CCParticleSystemQuad* ret = cocos2d::CCParticleSystemQuad::createWithTotalParticles(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSystemQuad>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSystemQuad_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSystemQuad* cobj = new cocos2d::CCParticleSystemQuad();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSystemQuad> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSystemQuad");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSystemQuad_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSystemQuad(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSystemQuad_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSystemQuad_class->name = "ParticleSystemQuad";
	js_cocos2dx_CCParticleSystemQuad_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystemQuad_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystemQuad_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSystemQuad_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSystemQuad_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSystemQuad_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSystemQuad_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSystemQuad_class->finalize = js_cocos2dx_CCParticleSystemQuad_finalize;
	js_cocos2dx_CCParticleSystemQuad_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initTexCoordsWithRect", js_cocos2dx_CCParticleSystemQuad_initTexCoordsWithRect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTextureWithRect", js_cocos2dx_CCParticleSystemQuad_setTextureWithRect, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setDisplayFrame", js_cocos2dx_CCParticleSystemQuad_setDisplayFrame, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCParticleSystemQuad_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithTotalParticles", js_cocos2dx_CCParticleSystemQuad_createWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSystemQuad_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystem_prototype,
		js_cocos2dx_CCParticleSystemQuad_class,
		js_cocos2dx_CCParticleSystemQuad_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSystemQuad", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSystemQuad> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSystemQuad_class;
		p->proto = js_cocos2dx_CCParticleSystemQuad_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystem_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleFire_class;
JSObject *js_cocos2dx_CCParticleFire_prototype;

JSBool js_cocos2dx_CCParticleFire_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFire* cobj = (cocos2d::CCParticleFire *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFire_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFire* cobj = (cocos2d::CCParticleFire *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFire_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFire* ret = cocos2d::CCParticleFire::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFire>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFire_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFire* ret = cocos2d::CCParticleFire::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFire>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFire_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleFire* cobj = new cocos2d::CCParticleFire();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleFire> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleFire");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleFire_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleFire(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleFire_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleFire_class->name = "ParticleFire";
	js_cocos2dx_CCParticleFire_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFire_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFire_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFire_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleFire_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleFire_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleFire_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleFire_class->finalize = js_cocos2dx_CCParticleFire_finalize;
	js_cocos2dx_CCParticleFire_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleFire_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleFire_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleFire_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleFire_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleFire_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleFire_class,
		js_cocos2dx_CCParticleFire_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleFire", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleFire> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleFire_class;
		p->proto = js_cocos2dx_CCParticleFire_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleFireworks_class;
JSObject *js_cocos2dx_CCParticleFireworks_prototype;

JSBool js_cocos2dx_CCParticleFireworks_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFireworks* cobj = (cocos2d::CCParticleFireworks *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFireworks_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFireworks* cobj = (cocos2d::CCParticleFireworks *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFireworks_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFireworks* ret = cocos2d::CCParticleFireworks::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFireworks>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFireworks_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFireworks* ret = cocos2d::CCParticleFireworks::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFireworks>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFireworks_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleFireworks* cobj = new cocos2d::CCParticleFireworks();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleFireworks> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleFireworks");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleFireworks_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleFireworks(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleFireworks_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleFireworks_class->name = "ParticleFireworks";
	js_cocos2dx_CCParticleFireworks_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFireworks_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFireworks_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFireworks_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleFireworks_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleFireworks_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleFireworks_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleFireworks_class->finalize = js_cocos2dx_CCParticleFireworks_finalize;
	js_cocos2dx_CCParticleFireworks_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleFireworks_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleFireworks_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleFireworks_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleFireworks_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleFireworks_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleFireworks_class,
		js_cocos2dx_CCParticleFireworks_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleFireworks", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleFireworks> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleFireworks_class;
		p->proto = js_cocos2dx_CCParticleFireworks_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSun_class;
JSObject *js_cocos2dx_CCParticleSun_prototype;

JSBool js_cocos2dx_CCParticleSun_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSun* cobj = (cocos2d::CCParticleSun *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSun_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSun* cobj = (cocos2d::CCParticleSun *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSun_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSun* ret = cocos2d::CCParticleSun::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSun>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSun_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSun* ret = cocos2d::CCParticleSun::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSun>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSun_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSun* cobj = new cocos2d::CCParticleSun();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSun> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSun");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSun_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSun(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSun_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSun_class->name = "ParticleSun";
	js_cocos2dx_CCParticleSun_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSun_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSun_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSun_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSun_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSun_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSun_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSun_class->finalize = js_cocos2dx_CCParticleSun_finalize;
	js_cocos2dx_CCParticleSun_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleSun_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleSun_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleSun_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleSun_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSun_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleSun_class,
		js_cocos2dx_CCParticleSun_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSun", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSun> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSun_class;
		p->proto = js_cocos2dx_CCParticleSun_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleGalaxy_class;
JSObject *js_cocos2dx_CCParticleGalaxy_prototype;

JSBool js_cocos2dx_CCParticleGalaxy_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleGalaxy* cobj = (cocos2d::CCParticleGalaxy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleGalaxy_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleGalaxy* cobj = (cocos2d::CCParticleGalaxy *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleGalaxy_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleGalaxy* ret = cocos2d::CCParticleGalaxy::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleGalaxy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleGalaxy_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleGalaxy* ret = cocos2d::CCParticleGalaxy::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleGalaxy>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleGalaxy_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleGalaxy* cobj = new cocos2d::CCParticleGalaxy();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleGalaxy> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleGalaxy");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleGalaxy_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleGalaxy(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleGalaxy_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleGalaxy_class->name = "ParticleGalaxy";
	js_cocos2dx_CCParticleGalaxy_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleGalaxy_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleGalaxy_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleGalaxy_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleGalaxy_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleGalaxy_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleGalaxy_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleGalaxy_class->finalize = js_cocos2dx_CCParticleGalaxy_finalize;
	js_cocos2dx_CCParticleGalaxy_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleGalaxy_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleGalaxy_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleGalaxy_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleGalaxy_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleGalaxy_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleGalaxy_class,
		js_cocos2dx_CCParticleGalaxy_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleGalaxy", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleGalaxy> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleGalaxy_class;
		p->proto = js_cocos2dx_CCParticleGalaxy_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleFlower_class;
JSObject *js_cocos2dx_CCParticleFlower_prototype;

JSBool js_cocos2dx_CCParticleFlower_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFlower* cobj = (cocos2d::CCParticleFlower *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFlower_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleFlower* cobj = (cocos2d::CCParticleFlower *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleFlower_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFlower* ret = cocos2d::CCParticleFlower::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFlower>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFlower_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleFlower* ret = cocos2d::CCParticleFlower::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleFlower>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleFlower_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleFlower* cobj = new cocos2d::CCParticleFlower();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleFlower> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleFlower");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleFlower_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleFlower(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleFlower_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleFlower_class->name = "ParticleFlower";
	js_cocos2dx_CCParticleFlower_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFlower_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFlower_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleFlower_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleFlower_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleFlower_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleFlower_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleFlower_class->finalize = js_cocos2dx_CCParticleFlower_finalize;
	js_cocos2dx_CCParticleFlower_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleFlower_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleFlower_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleFlower_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleFlower_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleFlower_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleFlower_class,
		js_cocos2dx_CCParticleFlower_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleFlower", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleFlower> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleFlower_class;
		p->proto = js_cocos2dx_CCParticleFlower_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleMeteor_class;
JSObject *js_cocos2dx_CCParticleMeteor_prototype;

JSBool js_cocos2dx_CCParticleMeteor_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleMeteor* cobj = (cocos2d::CCParticleMeteor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleMeteor_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleMeteor* cobj = (cocos2d::CCParticleMeteor *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleMeteor_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleMeteor* ret = cocos2d::CCParticleMeteor::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleMeteor>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleMeteor_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleMeteor* ret = cocos2d::CCParticleMeteor::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleMeteor>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleMeteor_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleMeteor* cobj = new cocos2d::CCParticleMeteor();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleMeteor> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleMeteor");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleMeteor_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleMeteor(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleMeteor_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleMeteor_class->name = "ParticleMeteor";
	js_cocos2dx_CCParticleMeteor_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleMeteor_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleMeteor_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleMeteor_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleMeteor_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleMeteor_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleMeteor_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleMeteor_class->finalize = js_cocos2dx_CCParticleMeteor_finalize;
	js_cocos2dx_CCParticleMeteor_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleMeteor_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleMeteor_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleMeteor_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleMeteor_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleMeteor_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleMeteor_class,
		js_cocos2dx_CCParticleMeteor_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleMeteor", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleMeteor> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleMeteor_class;
		p->proto = js_cocos2dx_CCParticleMeteor_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSpiral_class;
JSObject *js_cocos2dx_CCParticleSpiral_prototype;

JSBool js_cocos2dx_CCParticleSpiral_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSpiral* cobj = (cocos2d::CCParticleSpiral *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSpiral_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSpiral* cobj = (cocos2d::CCParticleSpiral *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSpiral_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSpiral* ret = cocos2d::CCParticleSpiral::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSpiral>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSpiral_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSpiral* ret = cocos2d::CCParticleSpiral::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSpiral>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSpiral_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSpiral* cobj = new cocos2d::CCParticleSpiral();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSpiral> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSpiral");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSpiral_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSpiral(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSpiral_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSpiral_class->name = "ParticleSpiral";
	js_cocos2dx_CCParticleSpiral_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSpiral_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSpiral_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSpiral_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSpiral_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSpiral_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSpiral_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSpiral_class->finalize = js_cocos2dx_CCParticleSpiral_finalize;
	js_cocos2dx_CCParticleSpiral_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleSpiral_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleSpiral_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleSpiral_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleSpiral_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSpiral_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleSpiral_class,
		js_cocos2dx_CCParticleSpiral_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSpiral", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSpiral> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSpiral_class;
		p->proto = js_cocos2dx_CCParticleSpiral_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleExplosion_class;
JSObject *js_cocos2dx_CCParticleExplosion_prototype;

JSBool js_cocos2dx_CCParticleExplosion_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleExplosion* cobj = (cocos2d::CCParticleExplosion *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleExplosion_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleExplosion* cobj = (cocos2d::CCParticleExplosion *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleExplosion_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleExplosion* ret = cocos2d::CCParticleExplosion::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleExplosion>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleExplosion_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleExplosion* ret = cocos2d::CCParticleExplosion::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleExplosion>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleExplosion_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleExplosion* cobj = new cocos2d::CCParticleExplosion();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleExplosion> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleExplosion");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleExplosion_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleExplosion(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleExplosion_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleExplosion_class->name = "ParticleExplosion";
	js_cocos2dx_CCParticleExplosion_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleExplosion_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleExplosion_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleExplosion_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleExplosion_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleExplosion_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleExplosion_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleExplosion_class->finalize = js_cocos2dx_CCParticleExplosion_finalize;
	js_cocos2dx_CCParticleExplosion_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleExplosion_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleExplosion_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleExplosion_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleExplosion_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleExplosion_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleExplosion_class,
		js_cocos2dx_CCParticleExplosion_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleExplosion", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleExplosion> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleExplosion_class;
		p->proto = js_cocos2dx_CCParticleExplosion_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSmoke_class;
JSObject *js_cocos2dx_CCParticleSmoke_prototype;

JSBool js_cocos2dx_CCParticleSmoke_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSmoke* cobj = (cocos2d::CCParticleSmoke *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSmoke_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSmoke* cobj = (cocos2d::CCParticleSmoke *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSmoke_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSmoke* ret = cocos2d::CCParticleSmoke::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSmoke>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSmoke_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSmoke* ret = cocos2d::CCParticleSmoke::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSmoke>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSmoke_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSmoke* cobj = new cocos2d::CCParticleSmoke();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSmoke> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSmoke");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSmoke_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSmoke(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSmoke_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSmoke_class->name = "ParticleSmoke";
	js_cocos2dx_CCParticleSmoke_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSmoke_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSmoke_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSmoke_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSmoke_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSmoke_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSmoke_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSmoke_class->finalize = js_cocos2dx_CCParticleSmoke_finalize;
	js_cocos2dx_CCParticleSmoke_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleSmoke_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleSmoke_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleSmoke_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleSmoke_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSmoke_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleSmoke_class,
		js_cocos2dx_CCParticleSmoke_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSmoke", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSmoke> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSmoke_class;
		p->proto = js_cocos2dx_CCParticleSmoke_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleSnow_class;
JSObject *js_cocos2dx_CCParticleSnow_prototype;

JSBool js_cocos2dx_CCParticleSnow_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSnow* cobj = (cocos2d::CCParticleSnow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSnow_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleSnow* cobj = (cocos2d::CCParticleSnow *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleSnow_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSnow* ret = cocos2d::CCParticleSnow::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSnow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSnow_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleSnow* ret = cocos2d::CCParticleSnow::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleSnow>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleSnow_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleSnow* cobj = new cocos2d::CCParticleSnow();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleSnow> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleSnow");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleSnow_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleSnow(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleSnow_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleSnow_class->name = "ParticleSnow";
	js_cocos2dx_CCParticleSnow_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSnow_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSnow_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleSnow_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleSnow_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleSnow_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleSnow_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleSnow_class->finalize = js_cocos2dx_CCParticleSnow_finalize;
	js_cocos2dx_CCParticleSnow_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleSnow_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleSnow_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleSnow_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleSnow_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleSnow_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleSnow_class,
		js_cocos2dx_CCParticleSnow_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleSnow", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleSnow> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleSnow_class;
		p->proto = js_cocos2dx_CCParticleSnow_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParticleRain_class;
JSObject *js_cocos2dx_CCParticleRain_prototype;

JSBool js_cocos2dx_CCParticleRain_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleRain* cobj = (cocos2d::CCParticleRain *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleRain_initWithTotalParticles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParticleRain* cobj = (cocos2d::CCParticleRain *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		bool ret = cobj->initWithTotalParticles(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParticleRain_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleRain* ret = cocos2d::CCParticleRain::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleRain>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleRain_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParticleRain* ret = cocos2d::CCParticleRain::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParticleRain>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParticleRain_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParticleRain* cobj = new cocos2d::CCParticleRain();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParticleRain> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParticleRain");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParticleRain_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParticleRain(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParticleRain_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParticleRain_class->name = "ParticleRain";
	js_cocos2dx_CCParticleRain_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleRain_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleRain_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParticleRain_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParticleRain_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParticleRain_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParticleRain_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParticleRain_class->finalize = js_cocos2dx_CCParticleRain_finalize;
	js_cocos2dx_CCParticleRain_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("init", js_cocos2dx_CCParticleRain_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTotalParticles", js_cocos2dx_CCParticleRain_initWithTotalParticles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParticleRain_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParticleRain_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParticleRain_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCParticleSystemQuad_prototype,
		js_cocos2dx_CCParticleRain_class,
		js_cocos2dx_CCParticleRain_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParticleRain", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParticleRain> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParticleRain_class;
		p->proto = js_cocos2dx_CCParticleRain_prototype;
		p->parentProto = js_cocos2dx_CCParticleSystemQuad_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCAnimationCache_class;
JSObject *js_cocos2dx_CCAnimationCache_prototype;

JSBool js_cocos2dx_CCAnimationCache_animationByName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCAnimation* ret = cobj->animationByName(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimation>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_addAnimationsWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->addAnimationsWithFile(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_removeAnimationByName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->removeAnimationByName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_addAnimationsWithDictionary(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->addAnimationsWithDictionary(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_addAnimation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCAnimationCache* cobj = (cocos2d::CCAnimationCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCAnimation* arg0;
		const char* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCAnimation*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cobj->addAnimation(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCAnimationCache_purgeSharedAnimationCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCAnimationCache::purgeSharedAnimationCache();
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimationCache_sharedAnimationCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCAnimationCache* ret = cocos2d::CCAnimationCache::sharedAnimationCache();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCAnimationCache>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCAnimationCache_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCAnimationCache* cobj = new cocos2d::CCAnimationCache();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCAnimationCache> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCAnimationCache");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCAnimationCache_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCAnimationCache(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCAnimationCache_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCAnimationCache_class->name = "AnimationCache";
	js_cocos2dx_CCAnimationCache_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationCache_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationCache_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCAnimationCache_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCAnimationCache_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCAnimationCache_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCAnimationCache_class->convert = JS_ConvertStub;
	js_cocos2dx_CCAnimationCache_class->finalize = js_cocos2dx_CCAnimationCache_finalize;
	js_cocos2dx_CCAnimationCache_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getAnimation", js_cocos2dx_CCAnimationCache_animationByName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addAnimations", js_cocos2dx_CCAnimationCache_addAnimationsWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAnimationByName", js_cocos2dx_CCAnimationCache_removeAnimationByName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCAnimationCache_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addAnimationsWithDictionary", js_cocos2dx_CCAnimationCache_addAnimationsWithDictionary, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addAnimation", js_cocos2dx_CCAnimationCache_addAnimation, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("purgeSharedAnimationCache", js_cocos2dx_CCAnimationCache_purgeSharedAnimationCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInstance", js_cocos2dx_CCAnimationCache_sharedAnimationCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCAnimationCache_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCAnimationCache_class,
		js_cocos2dx_CCAnimationCache_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "AnimationCache", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCAnimationCache> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCAnimationCache_class;
		p->proto = js_cocos2dx_CCAnimationCache_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCSpriteFrameCache_class;
JSObject *js_cocos2dx_CCSpriteFrameCache_prototype;

JSBool js_cocos2dx_CCSpriteFrameCache_addSpriteFramesWithFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCSpriteFrameCache* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		const char* arg1;
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cobj->addSpriteFramesWithFile(arg0, arg1);
		return JS_TRUE;
	}
	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->addSpriteFramesWithFile(arg0);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTexture2D* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		cobj->addSpriteFramesWithFile(arg0, arg1);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_addSpriteFrame(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCSpriteFrame* arg0;
		const char* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSpriteFrame*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cobj->addSpriteFrame(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_removeUnusedSpriteFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->removeUnusedSpriteFrames();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_spriteFrameByName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCSpriteFrame* ret = cobj->spriteFrameByName(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrame>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_removeSpriteFramesFromFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->removeSpriteFramesFromFile(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_init(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->init();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_removeSpriteFrames(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->removeSpriteFrames();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_removeSpriteFramesFromTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeSpriteFramesFromTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_removeSpriteFrameByName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCSpriteFrameCache* cobj = (cocos2d::CCSpriteFrameCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->removeSpriteFrameByName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCSpriteFrameCache_purgeSharedSpriteFrameCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCSpriteFrameCache::purgeSharedSpriteFrameCache();
	return JS_TRUE;
}

JSBool js_cocos2dx_CCSpriteFrameCache_sharedSpriteFrameCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCSpriteFrameCache* ret = cocos2d::CCSpriteFrameCache::sharedSpriteFrameCache();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSpriteFrameCache>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_CCSpriteFrameCache_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCSpriteFrameCache(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCSpriteFrameCache_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCSpriteFrameCache_class->name = "SpriteFrameCache";
	js_cocos2dx_CCSpriteFrameCache_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrameCache_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrameCache_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCSpriteFrameCache_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCSpriteFrameCache_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCSpriteFrameCache_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCSpriteFrameCache_class->convert = JS_ConvertStub;
	js_cocos2dx_CCSpriteFrameCache_class->finalize = js_cocos2dx_CCSpriteFrameCache_finalize;
	js_cocos2dx_CCSpriteFrameCache_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addSpriteFrames", js_cocos2dx_CCSpriteFrameCache_addSpriteFramesWithFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addSpriteFrame", js_cocos2dx_CCSpriteFrameCache_addSpriteFrame, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeUnusedSpriteFrames", js_cocos2dx_CCSpriteFrameCache_removeUnusedSpriteFrames, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getSpriteFrame", js_cocos2dx_CCSpriteFrameCache_spriteFrameByName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeSpriteFramesFromFile", js_cocos2dx_CCSpriteFrameCache_removeSpriteFramesFromFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("init", js_cocos2dx_CCSpriteFrameCache_init, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeSpriteFrames", js_cocos2dx_CCSpriteFrameCache_removeSpriteFrames, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeSpriteFramesFromTexture", js_cocos2dx_CCSpriteFrameCache_removeSpriteFramesFromTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeSpriteFrameByName", js_cocos2dx_CCSpriteFrameCache_removeSpriteFrameByName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("purgeSharedSpriteFrameCache", js_cocos2dx_CCSpriteFrameCache_purgeSharedSpriteFrameCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInstance", js_cocos2dx_CCSpriteFrameCache_sharedSpriteFrameCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCSpriteFrameCache_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCSpriteFrameCache_class,
		empty_constructor, 0,
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "SpriteFrameCache", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCSpriteFrameCache> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCSpriteFrameCache_class;
		p->proto = js_cocos2dx_CCSpriteFrameCache_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTextureCache_class;
JSObject *js_cocos2dx_CCTextureCache_prototype;

JSBool js_cocos2dx_CCTextureCache_dumpCachedTextureInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->dumpCachedTextureInfo();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_addUIImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCImage* arg0;
		const char* arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCImage*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		cocos2d::CCTexture2D* ret = cobj->addUIImage(arg0, arg1);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_removeTextureForKey(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->removeTextureForKey(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_textureForKey(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTexture2D* ret = cobj->textureForKey(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_snapshotTextures(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->snapshotTextures();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_addPVRImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTexture2D* ret = cobj->addPVRImage(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_addImage(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTexture2D* ret = cobj->addImage(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTexture2D>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_removeAllTextures(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->removeAllTextures();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_removeUnusedTextures(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->removeUnusedTextures();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_removeTexture(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTextureCache* cobj = (cocos2d::CCTextureCache *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTexture2D* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTexture2D*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->removeTexture(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTextureCache_purgeSharedTextureCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCTextureCache::purgeSharedTextureCache();
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTextureCache_reloadAllTextures(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCTextureCache::reloadAllTextures();
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTextureCache_sharedTextureCache(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCTextureCache* ret = cocos2d::CCTextureCache::sharedTextureCache();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTextureCache>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTextureCache_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTextureCache* cobj = new cocos2d::CCTextureCache();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTextureCache> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTextureCache");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTextureCache_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTextureCache(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTextureCache_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTextureCache_class->name = "TextureCache";
	js_cocos2dx_CCTextureCache_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTextureCache_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTextureCache_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTextureCache_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTextureCache_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTextureCache_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTextureCache_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTextureCache_class->finalize = js_cocos2dx_CCTextureCache_finalize;
	js_cocos2dx_CCTextureCache_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("dumpCachedTextureInfo", js_cocos2dx_CCTextureCache_dumpCachedTextureInfo, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addUIImage", js_cocos2dx_CCTextureCache_addUIImage, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeTextureForKey", js_cocos2dx_CCTextureCache_removeTextureForKey, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("textureForKey", js_cocos2dx_CCTextureCache_textureForKey, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("snapshotTextures", js_cocos2dx_CCTextureCache_snapshotTextures, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addPVRImage", js_cocos2dx_CCTextureCache_addPVRImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("addImage", js_cocos2dx_CCTextureCache_addImage, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllTextures", js_cocos2dx_CCTextureCache_removeAllTextures, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeUnusedTextures", js_cocos2dx_CCTextureCache_removeUnusedTextures, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeTexture", js_cocos2dx_CCTextureCache_removeTexture, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("purgeSharedTextureCache", js_cocos2dx_CCTextureCache_purgeSharedTextureCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("reloadAllTextures", js_cocos2dx_CCTextureCache_reloadAllTextures, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInstance", js_cocos2dx_CCTextureCache_sharedTextureCache, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTextureCache_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTextureCache_class,
		js_cocos2dx_CCTextureCache_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TextureCache", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTextureCache> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTextureCache_class;
		p->proto = js_cocos2dx_CCTextureCache_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCParallaxNode_class;
JSObject *js_cocos2dx_CCParallaxNode_prototype;

JSBool js_cocos2dx_CCParallaxNode_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCParallaxNode* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int arg1;
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		int arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	if (argc == 4) {
		cocos2d::CCNode* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		unsigned int arg1;
		JS_ValueToECMAUint32(cx, argv[1], &arg1);
		cocos2d::CCPoint arg2;
		arg2 = jsval_to_ccpoint(cx, argv[2]);
		cocos2d::CCPoint arg3;
		arg3 = jsval_to_ccpoint(cx, argv[3]);
		cobj->addChild(arg0, arg1, arg2, arg3);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_visit(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParallaxNode* cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->visit();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_removeAllChildrenWithCleanup(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParallaxNode* cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->removeAllChildrenWithCleanup(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParallaxNode* cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_getParallaxArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParallaxNode* cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		_ccArray* ret = cobj->getParallaxArray();
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR _ccArray*;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_setParallaxArray(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCParallaxNode* cobj = (cocos2d::CCParallaxNode *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		_ccArray* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR _ccArray*;
		cobj->setParallaxArray(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCParallaxNode_node(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParallaxNode* ret = cocos2d::CCParallaxNode::node();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParallaxNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParallaxNode_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	cocos2d::CCParallaxNode* ret = cocos2d::CCParallaxNode::create();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCParallaxNode>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCParallaxNode_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCParallaxNode* cobj = new cocos2d::CCParallaxNode();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCParallaxNode> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCParallaxNode");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCParallaxNode_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCParallaxNode(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCParallaxNode_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCParallaxNode_class->name = "ParallaxNode";
	js_cocos2dx_CCParallaxNode_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCParallaxNode_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCParallaxNode_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCParallaxNode_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCParallaxNode_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCParallaxNode_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCParallaxNode_class->convert = JS_ConvertStub;
	js_cocos2dx_CCParallaxNode_class->finalize = js_cocos2dx_CCParallaxNode_finalize;
	js_cocos2dx_CCParallaxNode_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addChild", js_cocos2dx_CCParallaxNode_addChild, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("visit", js_cocos2dx_CCParallaxNode_visit, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeAllChildrenWithCleanup", js_cocos2dx_CCParallaxNode_removeAllChildrenWithCleanup, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCParallaxNode_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getParallaxArray", js_cocos2dx_CCParallaxNode_getParallaxArray, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setParallaxArray", js_cocos2dx_CCParallaxNode_setParallaxArray, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("node", js_cocos2dx_CCParallaxNode_node, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCParallaxNode_create, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCParallaxNode_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCParallaxNode_class,
		js_cocos2dx_CCParallaxNode_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "ParallaxNode", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCParallaxNode> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCParallaxNode_class;
		p->proto = js_cocos2dx_CCParallaxNode_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXObjectGroup_class;
JSObject *js_cocos2dx_CCTMXObjectGroup_prototype;

JSBool js_cocos2dx_CCTMXObjectGroup_setPositionOffset(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->setPositionOffset(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_objectNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCDictionary* ret = cobj->objectNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_getPositionOffset(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCPoint ret = cobj->getPositionOffset();
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_getObjects(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getObjects();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_setGroupName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setGroupName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_getProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_getGroupName(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getGroupName();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_setProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_propertyNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCString* ret = cobj->propertyNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCString>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_setObjects(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXObjectGroup* cobj = (cocos2d::CCTMXObjectGroup *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setObjects(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXObjectGroup_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXObjectGroup* cobj = new cocos2d::CCTMXObjectGroup();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXObjectGroup> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXObjectGroup");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXObjectGroup_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXObjectGroup(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXObjectGroup_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXObjectGroup_class->name = "TMXObjectGroup";
	js_cocos2dx_CCTMXObjectGroup_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXObjectGroup_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXObjectGroup_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXObjectGroup_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXObjectGroup_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXObjectGroup_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXObjectGroup_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXObjectGroup_class->finalize = js_cocos2dx_CCTMXObjectGroup_finalize;
	js_cocos2dx_CCTMXObjectGroup_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setPositionOffset", js_cocos2dx_CCTMXObjectGroup_setPositionOffset, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("objectNamed", js_cocos2dx_CCTMXObjectGroup_objectNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getPositionOffset", js_cocos2dx_CCTMXObjectGroup_getPositionOffset, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getObjects", js_cocos2dx_CCTMXObjectGroup_getObjects, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setGroupName", js_cocos2dx_CCTMXObjectGroup_setGroupName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getProperties", js_cocos2dx_CCTMXObjectGroup_getProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getGroupName", js_cocos2dx_CCTMXObjectGroup_getGroupName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setProperties", js_cocos2dx_CCTMXObjectGroup_setProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("propertyNamed", js_cocos2dx_CCTMXObjectGroup_propertyNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setObjects", js_cocos2dx_CCTMXObjectGroup_setObjects, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTMXObjectGroup_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTMXObjectGroup_class,
		js_cocos2dx_CCTMXObjectGroup_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXObjectGroup", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXObjectGroup> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXObjectGroup_class;
		p->proto = js_cocos2dx_CCTMXObjectGroup_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXLayerInfo_class;
JSObject *js_cocos2dx_CCTMXLayerInfo_prototype;

JSBool js_cocos2dx_CCTMXLayerInfo_setProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayerInfo* cobj = (cocos2d::CCTMXLayerInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayerInfo_getProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayerInfo* cobj = (cocos2d::CCTMXLayerInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayerInfo_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXLayerInfo* cobj = new cocos2d::CCTMXLayerInfo();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXLayerInfo> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXLayerInfo");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXLayerInfo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXLayerInfo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXLayerInfo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXLayerInfo_class->name = "TMXLayerInfo";
	js_cocos2dx_CCTMXLayerInfo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayerInfo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayerInfo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayerInfo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXLayerInfo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXLayerInfo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXLayerInfo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXLayerInfo_class->finalize = js_cocos2dx_CCTMXLayerInfo_finalize;
	js_cocos2dx_CCTMXLayerInfo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("setProperties", js_cocos2dx_CCTMXLayerInfo_setProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getProperties", js_cocos2dx_CCTMXLayerInfo_getProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTMXLayerInfo_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTMXLayerInfo_class,
		js_cocos2dx_CCTMXLayerInfo_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXLayerInfo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXLayerInfo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXLayerInfo_class;
		p->proto = js_cocos2dx_CCTMXLayerInfo_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXTilesetInfo_class;
JSObject *js_cocos2dx_CCTMXTilesetInfo_prototype;

JSBool js_cocos2dx_CCTMXTilesetInfo_rectForGID(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTilesetInfo* cobj = (cocos2d::CCTMXTilesetInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cocos2d::CCRect ret = cobj->rectForGID(arg0);
		jsval jsret;
		jsret = ccrect_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTilesetInfo_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXTilesetInfo* cobj = new cocos2d::CCTMXTilesetInfo();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXTilesetInfo> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXTilesetInfo");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXTilesetInfo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXTilesetInfo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXTilesetInfo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXTilesetInfo_class->name = "TMXTilesetInfo";
	js_cocos2dx_CCTMXTilesetInfo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTilesetInfo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTilesetInfo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTilesetInfo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXTilesetInfo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXTilesetInfo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXTilesetInfo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXTilesetInfo_class->finalize = js_cocos2dx_CCTMXTilesetInfo_finalize;
	js_cocos2dx_CCTMXTilesetInfo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("rectForGID", js_cocos2dx_CCTMXTilesetInfo_rectForGID, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCTMXTilesetInfo_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTMXTilesetInfo_class,
		js_cocos2dx_CCTMXTilesetInfo_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXTilesetInfo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXTilesetInfo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXTilesetInfo_class;
		p->proto = js_cocos2dx_CCTMXTilesetInfo_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXMapInfo_class;
JSObject *js_cocos2dx_CCTMXMapInfo_prototype;

JSBool js_cocos2dx_CCTMXMapInfo_getTileProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getTileProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setObjectGroups(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setObjectGroups(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setTileSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_initWithTMXFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithTMXFile(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getOrientation();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setTMXFileName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setTMXFileName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setLayers(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setLayers(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setStoringCharacters(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->setStoringCharacters(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getStoringCharacters(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->getStoringCharacters();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getParentElement(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getParentElement();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getLayerAttribs(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getLayerAttribs();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getLayers(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getLayers();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getTilesets(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getTilesets();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getParentGID(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getParentGID();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setParentElement(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setParentElement(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setParentGID(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setParentGID(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_parseXMLString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->parseXMLString(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getTileSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getObjectGroups(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getObjectGroups();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setLayerAttribs(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setLayerAttribs(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getTMXFileName(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getTMXFileName();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setCurrentString(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setCurrentString(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_initWithXML(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		const char* arg1;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		bool ret = cobj->initWithXML(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setOrientation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setTileProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTileProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setMapSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setMapSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_parseXMLFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->parseXMLFile(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getMapSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getMapSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_setTilesets(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setTilesets(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_getCurrentString(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXMapInfo* cobj = (cocos2d::CCTMXMapInfo *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getCurrentString();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXMapInfo_formatWithTMXFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCTMXMapInfo* ret = cocos2d::CCTMXMapInfo::formatWithTMXFile(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXMapInfo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXMapInfo_formatWithXML(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	cocos2d::CCTMXMapInfo* ret = cocos2d::CCTMXMapInfo::formatWithXML(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXMapInfo>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXMapInfo_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXMapInfo* cobj = new cocos2d::CCTMXMapInfo();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXMapInfo> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXMapInfo");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXMapInfo_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXMapInfo(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXMapInfo_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXMapInfo_class->name = "TMXMapInfo";
	js_cocos2dx_CCTMXMapInfo_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXMapInfo_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXMapInfo_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXMapInfo_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXMapInfo_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXMapInfo_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXMapInfo_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXMapInfo_class->finalize = js_cocos2dx_CCTMXMapInfo_finalize;
	js_cocos2dx_CCTMXMapInfo_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getTileProperties", js_cocos2dx_CCTMXMapInfo_getTileProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setObjectGroups", js_cocos2dx_CCTMXMapInfo_setObjectGroups, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTileSize", js_cocos2dx_CCTMXMapInfo_setTileSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTMXFile", js_cocos2dx_CCTMXMapInfo_initWithTMXFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getOrientation", js_cocos2dx_CCTMXMapInfo_getOrientation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTMXFileName", js_cocos2dx_CCTMXMapInfo_setTMXFileName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLayers", js_cocos2dx_CCTMXMapInfo_setLayers, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setStoringCharacters", js_cocos2dx_CCTMXMapInfo_setStoringCharacters, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getStoringCharacters", js_cocos2dx_CCTMXMapInfo_getStoringCharacters, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getParentElement", js_cocos2dx_CCTMXMapInfo_getParentElement, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayerAttribs", js_cocos2dx_CCTMXMapInfo_getLayerAttribs, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayers", js_cocos2dx_CCTMXMapInfo_getLayers, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTilesets", js_cocos2dx_CCTMXMapInfo_getTilesets, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getParentGID", js_cocos2dx_CCTMXMapInfo_getParentGID, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setParentElement", js_cocos2dx_CCTMXMapInfo_setParentElement, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setProperties", js_cocos2dx_CCTMXMapInfo_setProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setParentGID", js_cocos2dx_CCTMXMapInfo_setParentGID, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("parseXMLString", js_cocos2dx_CCTMXMapInfo_parseXMLString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileSize", js_cocos2dx_CCTMXMapInfo_getTileSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getObjectGroups", js_cocos2dx_CCTMXMapInfo_getObjectGroups, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLayerAttribs", js_cocos2dx_CCTMXMapInfo_setLayerAttribs, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTMXFileName", js_cocos2dx_CCTMXMapInfo_getTMXFileName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setCurrentString", js_cocos2dx_CCTMXMapInfo_setCurrentString, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithXML", js_cocos2dx_CCTMXMapInfo_initWithXML, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setOrientation", js_cocos2dx_CCTMXMapInfo_setOrientation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTileProperties", js_cocos2dx_CCTMXMapInfo_setTileProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMapSize", js_cocos2dx_CCTMXMapInfo_setMapSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("parseXMLFile", js_cocos2dx_CCTMXMapInfo_parseXMLFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMapSize", js_cocos2dx_CCTMXMapInfo_getMapSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTilesets", js_cocos2dx_CCTMXMapInfo_setTilesets, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getProperties", js_cocos2dx_CCTMXMapInfo_getProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getCurrentString", js_cocos2dx_CCTMXMapInfo_getCurrentString, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("formatWithTMXFile", js_cocos2dx_CCTMXMapInfo_formatWithTMXFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("formatWithXML", js_cocos2dx_CCTMXMapInfo_formatWithXML, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTMXMapInfo_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTMXMapInfo_class,
		js_cocos2dx_CCTMXMapInfo_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXMapInfo", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXMapInfo> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXMapInfo_class;
		p->proto = js_cocos2dx_CCTMXMapInfo_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXLayer_class;
JSObject *js_cocos2dx_CCTMXLayer_prototype;

JSBool js_cocos2dx_CCTMXLayer_addChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCNode* arg0;
		int arg1;
		int arg2;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->addChild(arg0, arg1, arg2);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_tileGIDAt(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCTMXLayer* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::ccTMXTileFlags* arg1;
		#pragma warning NO CONVERSION TO NATIVE FOR cocos2d::ccTMXTileFlags*;
		unsigned int ret = cobj->tileGIDAt(arg0, arg1);
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		unsigned int ret = cobj->tileGIDAt(arg0);
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_positionAt(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCPoint ret = cobj->positionAt(arg0);
		jsval jsret;
		jsret = ccpoint_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setLayerOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->setLayerOrientation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_propertyNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCString* ret = cobj->propertyNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCString>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getTiles(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int* ret = cobj->getTiles();
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR unsigned int*;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_releaseMap(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->releaseMap();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setTiles(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR unsigned int*;
		cobj->setTiles(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getLayerSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getLayerSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setMapTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setMapTileSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getLayerOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		unsigned int ret = cobj->getLayerOrientation();
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setLayerName(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->setLayerName(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_removeTileAt(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cobj->removeTileAt(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_initWithTilesetInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCTMXTilesetInfo* arg0;
		cocos2d::CCTMXLayerInfo* arg1;
		cocos2d::CCTMXMapInfo* arg2;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTMXTilesetInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCTMXLayerInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg2 = (cocos2d::CCTMXMapInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg2)
		} while (0);
		bool ret = cobj->initWithTilesetInfo(arg0, arg1, arg2);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setupTiles(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->setupTiles();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setTileGID(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	cocos2d::CCTMXLayer* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cocos2d::CCPoint arg1;
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		cocos2d::ccTMXTileFlags arg2;
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		cobj->setTileGID(arg0, arg1, arg2);
		return JS_TRUE;
	}
	if (argc == 2) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cocos2d::CCPoint arg1;
		arg1 = jsval_to_ccpoint(cx, argv[1]);
		cobj->setTileGID(arg0, arg1);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getMapTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getMapTileSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setLayerSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setLayerSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getLayerName(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		const char* ret = cobj->getLayerName();
		jsval jsret;
		jsret = c_string_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_setTileSet(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCTMXTilesetInfo* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTMXTilesetInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setTileSet(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_removeChild(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::CCNode* arg0;
		JSBool arg1;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCNode*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->removeChild(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getTileSet(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCTMXTilesetInfo* ret = cobj->getTileSet();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXTilesetInfo>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_getProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_tileAt(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXLayer* cobj = (cocos2d::CCTMXLayer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCPoint arg0;
		arg0 = jsval_to_ccpoint(cx, argv[0]);
		cocos2d::CCSprite* ret = cobj->tileAt(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSprite>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXLayer_layerWithTilesetInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTMXTilesetInfo* arg0;
	cocos2d::CCTMXLayerInfo* arg1;
	cocos2d::CCTMXMapInfo* arg2;
	assert(argc >= 3);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTMXTilesetInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCTMXLayerInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg2 = (cocos2d::CCTMXMapInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg2)
		} while (0);
	cocos2d::CCTMXLayer* ret = cocos2d::CCTMXLayer::layerWithTilesetInfo(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXLayer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXLayer_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	cocos2d::CCTMXTilesetInfo* arg0;
	cocos2d::CCTMXLayerInfo* arg1;
	cocos2d::CCTMXMapInfo* arg2;
	assert(argc >= 3);

	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCTMXTilesetInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[1]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg1 = (cocos2d::CCTMXLayerInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg1)
		} while (0);
	do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[2]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg2 = (cocos2d::CCTMXMapInfo*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg2)
		} while (0);
	cocos2d::CCTMXLayer* ret = cocos2d::CCTMXLayer::create(arg0, arg1, arg2);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXLayer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXLayer_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXLayer* cobj = new cocos2d::CCTMXLayer();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXLayer> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXLayer");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXLayer_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXLayer(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXLayer_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXLayer_class->name = "TMXLayer";
	js_cocos2dx_CCTMXLayer_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayer_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayer_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXLayer_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXLayer_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXLayer_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXLayer_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXLayer_class->finalize = js_cocos2dx_CCTMXLayer_finalize;
	js_cocos2dx_CCTMXLayer_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("addChild", js_cocos2dx_CCTMXLayer_addChild, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileGIDAt", js_cocos2dx_CCTMXLayer_tileGIDAt, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("positionAt", js_cocos2dx_CCTMXLayer_positionAt, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLayerOrientation", js_cocos2dx_CCTMXLayer_setLayerOrientation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("propertyNamed", js_cocos2dx_CCTMXLayer_propertyNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTiles", js_cocos2dx_CCTMXLayer_getTiles, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("releaseMap", js_cocos2dx_CCTMXLayer_releaseMap, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTiles", js_cocos2dx_CCTMXLayer_setTiles, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayerSize", js_cocos2dx_CCTMXLayer_getLayerSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMapTileSize", js_cocos2dx_CCTMXLayer_setMapTileSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayerOrientation", js_cocos2dx_CCTMXLayer_getLayerOrientation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setProperties", js_cocos2dx_CCTMXLayer_setProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLayerName", js_cocos2dx_CCTMXLayer_setLayerName, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeTileAt", js_cocos2dx_CCTMXLayer_removeTileAt, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTilesetInfo", js_cocos2dx_CCTMXLayer_initWithTilesetInfo, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setupTiles", js_cocos2dx_CCTMXLayer_setupTiles, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTileGID", js_cocos2dx_CCTMXLayer_setTileGID, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMapTileSize", js_cocos2dx_CCTMXLayer_getMapTileSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setLayerSize", js_cocos2dx_CCTMXLayer_setLayerSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayerName", js_cocos2dx_CCTMXLayer_getLayerName, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTileSet", js_cocos2dx_CCTMXLayer_setTileSet, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("removeChild", js_cocos2dx_CCTMXLayer_removeChild, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileSet", js_cocos2dx_CCTMXLayer_getTileSet, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getProperties", js_cocos2dx_CCTMXLayer_getProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileAt", js_cocos2dx_CCTMXLayer_tileAt, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("layerWithTilesetInfo", js_cocos2dx_CCTMXLayer_layerWithTilesetInfo, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCTMXLayer_create, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTMXLayer_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCSpriteBatchNode_prototype,
		js_cocos2dx_CCTMXLayer_class,
		js_cocos2dx_CCTMXLayer_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXLayer", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXLayer> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXLayer_class;
		p->proto = js_cocos2dx_CCTMXLayer_prototype;
		p->parentProto = js_cocos2dx_CCSpriteBatchNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTMXTiledMap_class;
JSObject *js_cocos2dx_CCTMXTiledMap_prototype;

JSBool js_cocos2dx_CCTMXTiledMap_propertiesForGID(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cocos2d::CCDictionary* ret = cobj->propertiesForGID(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_setObjectGroups(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCArray* arg0;
		arg0 = jsval_to_ccarray(cx, argv[0]);
		cobj->setObjectGroups(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_propertyNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCString* ret = cobj->propertyNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCString>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_setTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setTileSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_setMapSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSize arg0;
		arg0 = jsval_to_ccsize(cx, argv[0]);
		cobj->setMapSize(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_getTileSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getTileSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_getObjectGroups(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCArray* ret = cobj->getObjectGroups();
		jsval jsret;
		jsret = ccarray_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_initWithXML(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		const char* arg0;
		const char* arg1;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		bool ret = cobj->initWithXML(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_initWithTMXFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		bool ret = cobj->initWithTMXFile(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_objectGroupNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTMXObjectGroup* ret = cobj->objectGroupNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXObjectGroup>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_getMapSize(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSize ret = cobj->getMapSize();
		jsval jsret;
		jsret = ccsize_to_jsval(cx, ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_getProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCDictionary* ret = cobj->getProperties();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCDictionary>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_setMapOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->setMapOrientation(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_setProperties(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCDictionary* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCDictionary*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->setProperties(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_layerNamed(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cocos2d::CCTMXLayer* ret = cobj->layerNamed(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXLayer>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_getMapOrientation(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTMXTiledMap* cobj = (cocos2d::CCTMXTiledMap *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getMapOrientation();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTMXTiledMap_tiledMapWithTMXFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCTMXTiledMap* ret = cocos2d::CCTMXTiledMap::tiledMapWithTMXFile(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXTiledMap>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXTiledMap_tiledMapWithXML(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	cocos2d::CCTMXTiledMap* ret = cocos2d::CCTMXTiledMap::tiledMapWithXML(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXTiledMap>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXTiledMap_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	assert(argc >= 1);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	cocos2d::CCTMXTiledMap* ret = cocos2d::CCTMXTiledMap::create(arg0);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXTiledMap>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXTiledMap_createWithXML(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	assert(argc >= 2);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	cocos2d::CCTMXTiledMap* ret = cocos2d::CCTMXTiledMap::createWithXML(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTMXTiledMap>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTMXTiledMap_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTMXTiledMap* cobj = new cocos2d::CCTMXTiledMap();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTMXTiledMap> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTMXTiledMap");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTMXTiledMap_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTMXTiledMap(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTMXTiledMap_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTMXTiledMap_class->name = "TMXTiledMap";
	js_cocos2dx_CCTMXTiledMap_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTiledMap_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTiledMap_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTMXTiledMap_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTMXTiledMap_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTMXTiledMap_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTMXTiledMap_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTMXTiledMap_class->finalize = js_cocos2dx_CCTMXTiledMap_finalize;
	js_cocos2dx_CCTMXTiledMap_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("propertiesForGID", js_cocos2dx_CCTMXTiledMap_propertiesForGID, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setObjectGroups", js_cocos2dx_CCTMXTiledMap_setObjectGroups, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("propertyNamed", js_cocos2dx_CCTMXTiledMap_propertyNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTileSize", js_cocos2dx_CCTMXTiledMap_setTileSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMapSize", js_cocos2dx_CCTMXTiledMap_setMapSize, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileSize", js_cocos2dx_CCTMXTiledMap_getTileSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getObjectGroups", js_cocos2dx_CCTMXTiledMap_getObjectGroups, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithXML", js_cocos2dx_CCTMXTiledMap_initWithXML, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithTMXFile", js_cocos2dx_CCTMXTiledMap_initWithTMXFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getObjectGroup", js_cocos2dx_CCTMXTiledMap_objectGroupNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMapSize", js_cocos2dx_CCTMXTiledMap_getMapSize, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getProperties", js_cocos2dx_CCTMXTiledMap_getProperties, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setMapOrientation", js_cocos2dx_CCTMXTiledMap_setMapOrientation, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setProperties", js_cocos2dx_CCTMXTiledMap_setProperties, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getLayer", js_cocos2dx_CCTMXTiledMap_layerNamed, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getMapOrientation", js_cocos2dx_CCTMXTiledMap_getMapOrientation, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("tiledMapWithTMXFile", js_cocos2dx_CCTMXTiledMap_tiledMapWithTMXFile, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("tiledMapWithXML", js_cocos2dx_CCTMXTiledMap_tiledMapWithXML, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("create", js_cocos2dx_CCTMXTiledMap_create, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("createWithXML", js_cocos2dx_CCTMXTiledMap_createWithXML, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTMXTiledMap_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCNode_prototype,
		js_cocos2dx_CCTMXTiledMap_class,
		js_cocos2dx_CCTMXTiledMap_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TMXTiledMap", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTMXTiledMap> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTMXTiledMap_class;
		p->proto = js_cocos2dx_CCTMXTiledMap_prototype;
		p->parentProto = js_cocos2dx_CCNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTileMapAtlas_class;
JSObject *js_cocos2dx_CCTileMapAtlas_prototype;

JSBool js_cocos2dx_CCTileMapAtlas_initWithTileFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 4) {
		const char* arg0;
		const char* arg1;
		int arg2;
		int arg3;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
		JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
		JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
		bool ret = cobj->initWithTileFile(arg0, arg1, arg2, arg3);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 4);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_releaseMap(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->releaseMap();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_getTGAInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		sImageTGA* ret = cobj->getTGAInfo();
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR sImageTGA*;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_tileAt(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::ccGridSize arg0;
		arg0 = jsval_to_ccgridsize(cx, argv[0]);
		ccColor3B ret = cobj->tileAt(arg0);
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR ccColor3B;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_setTile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		cocos2d::ccColor3B arg0;
		cocos2d::ccGridSize arg1;
		arg0 = jsval_to_cccolor3b(cx, argv[0]);
		arg1 = jsval_to_ccgridsize(cx, argv[1]);
		cobj->setTile(arg0, arg1);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_setTGAInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTileMapAtlas* cobj = (cocos2d::CCTileMapAtlas *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		sImageTGA* arg0;
		#pragma warning NO CONVERSION TO NATIVE FOR sImageTGA*;
		cobj->setTGAInfo(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTileMapAtlas_create(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	int arg2;
	int arg3;
	assert(argc >= 4);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	cocos2d::CCTileMapAtlas* ret = cocos2d::CCTileMapAtlas::create(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTileMapAtlas>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTileMapAtlas_tileMapAtlasWithTileFile(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	const char* arg0;
	const char* arg1;
	int arg2;
	int arg3;
	assert(argc >= 4);

	std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
	std::string arg1_tmp = jsval_to_std_string(cx, argv[1]); arg1 = arg1_tmp.c_str();
	JS_ValueToInt32(cx, argv[2], (int32_t *)&arg2);
	JS_ValueToInt32(cx, argv[3], (int32_t *)&arg3);
	cocos2d::CCTileMapAtlas* ret = cocos2d::CCTileMapAtlas::tileMapAtlasWithTileFile(arg0, arg1, arg2, arg3);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTileMapAtlas>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTileMapAtlas_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTileMapAtlas* cobj = new cocos2d::CCTileMapAtlas();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTileMapAtlas> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTileMapAtlas");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTileMapAtlas_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTileMapAtlas(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTileMapAtlas_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTileMapAtlas_class->name = "TileMapAtlas";
	js_cocos2dx_CCTileMapAtlas_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTileMapAtlas_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTileMapAtlas_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTileMapAtlas_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTileMapAtlas_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTileMapAtlas_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTileMapAtlas_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTileMapAtlas_class->finalize = js_cocos2dx_CCTileMapAtlas_finalize;
	js_cocos2dx_CCTileMapAtlas_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("initWithTileFile", js_cocos2dx_CCTileMapAtlas_initWithTileFile, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("releaseMap", js_cocos2dx_CCTileMapAtlas_releaseMap, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTGAInfo", js_cocos2dx_CCTileMapAtlas_getTGAInfo, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTileAt", js_cocos2dx_CCTileMapAtlas_tileAt, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTile", js_cocos2dx_CCTileMapAtlas_setTile, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTGAInfo", js_cocos2dx_CCTileMapAtlas_setTGAInfo, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("create", js_cocos2dx_CCTileMapAtlas_create, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("tileMapAtlasWithTileFile", js_cocos2dx_CCTileMapAtlas_tileMapAtlasWithTileFile, 4, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTileMapAtlas_prototype = JS_InitClass(
		cx, global,
		js_cocos2dx_CCAtlasNode_prototype,
		js_cocos2dx_CCTileMapAtlas_class,
		js_cocos2dx_CCTileMapAtlas_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "TileMapAtlas", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTileMapAtlas> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTileMapAtlas_class;
		p->proto = js_cocos2dx_CCTileMapAtlas_prototype;
		p->parentProto = js_cocos2dx_CCAtlasNode_prototype;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCTimer_class;
JSObject *js_cocos2dx_CCTimer_prototype;

JSBool js_cocos2dx_CCTimer_getInterval(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTimer* cobj = (cocos2d::CCTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getInterval();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTimer_setInterval(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTimer* cobj = (cocos2d::CCTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setInterval(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTimer_initWithScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTimer* cobj = (cocos2d::CCTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 2) {
		int arg0;
		double arg1;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		bool ret = cobj->initWithScriptHandler(arg0, arg1);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 2);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTimer_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTimer* cobj = (cocos2d::CCTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTimer_getScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCTimer* cobj = (cocos2d::CCTimer *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		int ret = cobj->getScriptHandler();
		jsval jsret;
		jsret = INT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCTimer_timerWithScriptHandler(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	int arg0;
	double arg1;
	assert(argc >= 2);

	JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
	JS_ValueToNumber(cx, argv[1], &arg1);
	cocos2d::CCTimer* ret = cocos2d::CCTimer::timerWithScriptHandler(arg0, arg1);
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCTimer>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}

JSBool js_cocos2dx_CCTimer_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCTimer* cobj = new cocos2d::CCTimer();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCTimer> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCTimer");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCTimer_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCTimer(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCTimer_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCTimer_class->name = "Timer";
	js_cocos2dx_CCTimer_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCTimer_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCTimer_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCTimer_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCTimer_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCTimer_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCTimer_class->convert = JS_ConvertStub;
	js_cocos2dx_CCTimer_class->finalize = js_cocos2dx_CCTimer_finalize;
	js_cocos2dx_CCTimer_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("getInterval", js_cocos2dx_CCTimer_getInterval, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setInterval", js_cocos2dx_CCTimer_setInterval, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("initWithScriptHandler", js_cocos2dx_CCTimer_initWithScriptHandler, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCTimer_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getScriptHandler", js_cocos2dx_CCTimer_getScriptHandler, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("timerWithScriptHandler", js_cocos2dx_CCTimer_timerWithScriptHandler, 2, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_CCTimer_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCTimer_class,
		js_cocos2dx_CCTimer_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Timer", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCTimer> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCTimer_class;
		p->proto = js_cocos2dx_CCTimer_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_CCScheduler_class;
JSObject *js_cocos2dx_CCScheduler_prototype;

JSBool js_cocos2dx_CCScheduler_pauseAllTargets(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cocos2d::CCSet* ret = cobj->pauseAllTargets();
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSet>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_setTimeScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setTimeScale(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_unscheduleUpdateForTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->unscheduleUpdateForTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_scheduleUpdateForTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		cocos2d::CCObject* arg0;
		int arg1;
		JSBool arg2;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		JS_ValueToInt32(cx, argv[1], (int32_t *)&arg1);
		JS_ValueToBoolean(cx, argv[2], &arg2);
		cobj->scheduleUpdateForTarget(arg0, arg1, arg2);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_unscheduleAllSelectorsWithMinPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cobj->unscheduleAllSelectorsWithMinPriority(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_isTargetPaused(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		bool ret = cobj->isTargetPaused(arg0);
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_update(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->update(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_resumeTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->resumeTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_unscheduleScriptEntry(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->unscheduleScriptEntry(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_resumeTargets(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCSet* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCSet*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->resumeTargets(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_unscheduleAllSelectors(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->unscheduleAllSelectors();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_unscheduleAllSelectorsForTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->unscheduleAllSelectorsForTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_pauseTarget(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		cocos2d::CCObject* arg0;
		do {
			js_proxy_t *proxy;
			JSObject *tmpObj = JSVAL_TO_OBJECT(argv[0]);
			JS_GET_NATIVE_PROXY(proxy, tmpObj);
			arg0 = (cocos2d::CCObject*)(proxy ? proxy->ptr : NULL);
			TEST_NATIVE_OBJECT(cx, arg0)
		} while (0);
		cobj->pauseTarget(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_pauseAllTargetsWithMinPriority(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		int arg0;
		JS_ValueToInt32(cx, argv[0], (int32_t *)&arg0);
		cocos2d::CCSet* ret = cobj->pauseAllTargetsWithMinPriority(arg0);
		jsval jsret;
		do {
			if (ret) {
				js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::CCSet>(cx, ret);
				jsret = OBJECT_TO_JSVAL(proxy->obj);
			} else {
				jsret = JSVAL_NULL;
			}
		} while (0);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_scheduleScriptFunc(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 3) {
		unsigned int arg0;
		double arg1;
		JSBool arg2;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		JS_ValueToNumber(cx, argv[1], &arg1);
		JS_ValueToBoolean(cx, argv[2], &arg2);
		unsigned int ret = cobj->scheduleScriptFunc(arg0, arg1, arg2);
		jsval jsret;
		jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 3);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_getTimeScale(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cocos2d::CCScheduler* cobj = (cocos2d::CCScheduler *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getTimeScale();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_CCScheduler_constructor(JSContext *cx, uint32_t argc, jsval *vp)
{

	if (argc == 0) {
		cocos2d::CCScheduler* cobj = new cocos2d::CCScheduler();
#ifdef COCOS2D_JAVASCRIPT
		cocos2d::CCObject *_ccobj = dynamic_cast<cocos2d::CCObject *>(cobj);
		if (_ccobj) {
			_ccobj->autorelease();
		}
#endif
		TypeTest<cocos2d::CCScheduler> t;
		js_type_class_t *typeClass;
		uint32_t typeId = t.s_id();
		HASH_FIND_INT(_js_global_type_ht, &typeId, typeClass);
		assert(typeClass);
		JSObject *obj = JS_NewObject(cx, typeClass->jsclass, typeClass->proto, typeClass->parentProto);
		JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
		// link the native object with the javascript object
		js_proxy_t *p;
		JS_NEW_PROXY(p, cobj, obj);
#ifdef COCOS2D_JAVASCRIPT
		JS_AddNamedObjectRoot(cx, &p->obj, "cocos2d::CCScheduler");
#endif
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}



void js_cocos2dx_CCScheduler_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_CCScheduler(JSContext *cx, JSObject *global) {
	js_cocos2dx_CCScheduler_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_CCScheduler_class->name = "Scheduler";
	js_cocos2dx_CCScheduler_class->addProperty = JS_PropertyStub;
	js_cocos2dx_CCScheduler_class->delProperty = JS_PropertyStub;
	js_cocos2dx_CCScheduler_class->getProperty = JS_PropertyStub;
	js_cocos2dx_CCScheduler_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_CCScheduler_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_CCScheduler_class->resolve = JS_ResolveStub;
	js_cocos2dx_CCScheduler_class->convert = JS_ConvertStub;
	js_cocos2dx_CCScheduler_class->finalize = js_cocos2dx_CCScheduler_finalize;
	js_cocos2dx_CCScheduler_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	static JSPropertySpec properties[] = {
		{0, 0, 0, 0, 0}
	};

	static JSFunctionSpec funcs[] = {
		JS_FN("pauseAllTargets", js_cocos2dx_CCScheduler_pauseAllTargets, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setTimeScale", js_cocos2dx_CCScheduler_setTimeScale, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleUpdateForTarget", js_cocos2dx_CCScheduler_unscheduleUpdateForTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("scheduleUpdateForTarget", js_cocos2dx_CCScheduler_scheduleUpdateForTarget, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleAllSelectorsWithMinPriority", js_cocos2dx_CCScheduler_unscheduleAllSelectorsWithMinPriority, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isTargetPaused", js_cocos2dx_CCScheduler_isTargetPaused, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("update", js_cocos2dx_CCScheduler_update, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeTarget", js_cocos2dx_CCScheduler_resumeTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleScriptEntry", js_cocos2dx_CCScheduler_unscheduleScriptEntry, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeTargets", js_cocos2dx_CCScheduler_resumeTargets, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleAllSelectors", js_cocos2dx_CCScheduler_unscheduleAllSelectors, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unscheduleAllSelectorsForTarget", js_cocos2dx_CCScheduler_unscheduleAllSelectorsForTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseTarget", js_cocos2dx_CCScheduler_pauseTarget, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseAllTargetsWithMinPriority", js_cocos2dx_CCScheduler_pauseAllTargetsWithMinPriority, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("scheduleScriptFunc", js_cocos2dx_CCScheduler_scheduleScriptFunc, 3, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getTimeScale", js_cocos2dx_CCScheduler_getTimeScale, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	JSFunctionSpec *st_funcs = NULL;

	js_cocos2dx_CCScheduler_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_CCScheduler_class,
		js_cocos2dx_CCScheduler_constructor, 0, // constructor
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "Scheduler", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<cocos2d::CCScheduler> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_CCScheduler_class;
		p->proto = js_cocos2dx_CCScheduler_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}


JSClass  *js_cocos2dx_SimpleAudioEngine_class;
JSObject *js_cocos2dx_SimpleAudioEngine_prototype;

JSBool js_cocos2dx_SimpleAudioEngine_stopAllEffects(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stopAllEffects();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_getEffectsVolume(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getEffectsVolume();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_stopEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->stopEffect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_getBackgroundMusicVolume(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		float ret = cobj->getBackgroundMusicVolume();
		jsval jsret;
		jsret = DOUBLE_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_willPlayBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->willPlayBackgroundMusic();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_setBackgroundMusicVolume(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setBackgroundMusicVolume(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_stopBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	CocosDenshion::SimpleAudioEngine* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->stopBackgroundMusic();
		return JS_TRUE;
	}
	if (argc == 1) {
		JSBool arg0;
		JS_ValueToBoolean(cx, argv[0], &arg0);
		cobj->stopBackgroundMusic(arg0);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_pauseBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->pauseBackgroundMusic();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_isBackgroundMusicPlaying(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		bool ret = cobj->isBackgroundMusicPlaying();
		jsval jsret;
		jsret = BOOLEAN_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_resumeAllEffects(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->resumeAllEffects();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_pauseAllEffects(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->pauseAllEffects();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_preloadBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->preloadBackgroundMusic(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_playBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	CocosDenshion::SimpleAudioEngine* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->playBackgroundMusic(arg0);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JSBool arg1;
		JS_ValueToBoolean(cx, argv[1], &arg1);
		cobj->playBackgroundMusic(arg0, arg1);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_playEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj;
	CocosDenshion::SimpleAudioEngine* cobj;
	obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		unsigned int ret = cobj->playEffect(arg0);
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	if (argc == 2) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		JSBool arg1;
		JS_ValueToBoolean(cx, argv[1], &arg1);
		unsigned int ret = cobj->playEffect(arg0, arg1);
		jsval jsret; jsret = UINT_TO_JSVAL(ret);
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_preloadEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->preloadEffect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_unloadEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		const char* arg0;
		std::string arg0_tmp = jsval_to_std_string(cx, argv[0]); arg0 = arg0_tmp.c_str();
		cobj->unloadEffect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_rewindBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->rewindBackgroundMusic();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_pauseEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->pauseEffect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_getClassTypeInfo(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		long ret = cobj->getClassTypeInfo();
		jsval jsret;
		#pragma warning NO CONVERSION FROM NATIVE FOR long;
		JS_SET_RVAL(cx, vp, jsret);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_resumeBackgroundMusic(JSContext *cx, uint32_t argc, jsval *vp)
{
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 0) {
		cobj->resumeBackgroundMusic();
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 0);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_setEffectsVolume(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		double arg0;
		JS_ValueToNumber(cx, argv[0], &arg0);
		cobj->setEffectsVolume(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_resumeEffect(JSContext *cx, uint32_t argc, jsval *vp)
{
	jsval *argv = JS_ARGV(cx, vp);
	JSObject *obj = JS_THIS_OBJECT(cx, vp);
	js_proxy_t *proxy; JS_GET_NATIVE_PROXY(proxy, obj);
	CocosDenshion::SimpleAudioEngine* cobj = (CocosDenshion::SimpleAudioEngine *)(proxy ? proxy->ptr : NULL);
	TEST_NATIVE_OBJECT(cx, cobj)

	if (argc == 1) {
		unsigned int arg0;
		JS_ValueToECMAUint32(cx, argv[0], &arg0);
		cobj->resumeEffect(arg0);
		return JS_TRUE;
	}
	JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
	return JS_FALSE;
}
JSBool js_cocos2dx_SimpleAudioEngine_end(JSContext *cx, uint32_t argc, jsval *vp)
{
	CocosDenshion::SimpleAudioEngine::end();
	return JS_TRUE;
}

JSBool js_cocos2dx_SimpleAudioEngine_sharedEngine(JSContext *cx, uint32_t argc, jsval *vp)
{
	CocosDenshion::SimpleAudioEngine* ret = CocosDenshion::SimpleAudioEngine::sharedEngine();
	jsval jsret;
	do {
		if (ret) {
			js_proxy_t *proxy = js_get_or_create_proxy<CocosDenshion::SimpleAudioEngine>(cx, ret);
			jsret = OBJECT_TO_JSVAL(proxy->obj);
		} else {
			jsret = JSVAL_NULL;
		}
	} while (0);
	JS_SET_RVAL(cx, vp, jsret);
	return JS_TRUE;
}



void js_cocos2dx_SimpleAudioEngine_finalize(JSFreeOp *fop, JSObject *obj) {
}

void js_register_cocos2dx_SimpleAudioEngine(JSContext *cx, JSObject *global) {
	js_cocos2dx_SimpleAudioEngine_class = (JSClass *)calloc(1, sizeof(JSClass));
	js_cocos2dx_SimpleAudioEngine_class->name = "AudioEngine";
	js_cocos2dx_SimpleAudioEngine_class->addProperty = JS_PropertyStub;
	js_cocos2dx_SimpleAudioEngine_class->delProperty = JS_PropertyStub;
	js_cocos2dx_SimpleAudioEngine_class->getProperty = JS_PropertyStub;
	js_cocos2dx_SimpleAudioEngine_class->setProperty = JS_StrictPropertyStub;
	js_cocos2dx_SimpleAudioEngine_class->enumerate = JS_EnumerateStub;
	js_cocos2dx_SimpleAudioEngine_class->resolve = JS_ResolveStub;
	js_cocos2dx_SimpleAudioEngine_class->convert = JS_ConvertStub;
	js_cocos2dx_SimpleAudioEngine_class->finalize = js_cocos2dx_SimpleAudioEngine_finalize;
	js_cocos2dx_SimpleAudioEngine_class->flags = JSCLASS_HAS_RESERVED_SLOTS(2);

	JSPropertySpec *properties = NULL;

	static JSFunctionSpec funcs[] = {
		JS_FN("stopAllEffects", js_cocos2dx_SimpleAudioEngine_stopAllEffects, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getEffectsVolume", js_cocos2dx_SimpleAudioEngine_getEffectsVolume, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopEffect", js_cocos2dx_SimpleAudioEngine_stopEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getBackgroundMusicVolume", js_cocos2dx_SimpleAudioEngine_getBackgroundMusicVolume, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("willPlayBackgroundMusic", js_cocos2dx_SimpleAudioEngine_willPlayBackgroundMusic, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setBackgroundMusicVolume", js_cocos2dx_SimpleAudioEngine_setBackgroundMusicVolume, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("stopBackgroundMusic", js_cocos2dx_SimpleAudioEngine_stopBackgroundMusic, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseBackgroundMusic", js_cocos2dx_SimpleAudioEngine_pauseBackgroundMusic, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("isBackgroundMusicPlaying", js_cocos2dx_SimpleAudioEngine_isBackgroundMusicPlaying, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeAllEffects", js_cocos2dx_SimpleAudioEngine_resumeAllEffects, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseAllEffects", js_cocos2dx_SimpleAudioEngine_pauseAllEffects, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("preloadBackgroundMusic", js_cocos2dx_SimpleAudioEngine_preloadBackgroundMusic, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("playBackgroundMusic", js_cocos2dx_SimpleAudioEngine_playBackgroundMusic, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("playEffect", js_cocos2dx_SimpleAudioEngine_playEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("preloadEffect", js_cocos2dx_SimpleAudioEngine_preloadEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("unloadEffect", js_cocos2dx_SimpleAudioEngine_unloadEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("rewindBackgroundMusic", js_cocos2dx_SimpleAudioEngine_rewindBackgroundMusic, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("pauseEffect", js_cocos2dx_SimpleAudioEngine_pauseEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getClassTypeInfo", js_cocos2dx_SimpleAudioEngine_getClassTypeInfo, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeBackgroundMusic", js_cocos2dx_SimpleAudioEngine_resumeBackgroundMusic, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("setEffectsVolume", js_cocos2dx_SimpleAudioEngine_setEffectsVolume, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("resumeEffect", js_cocos2dx_SimpleAudioEngine_resumeEffect, 1, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	static JSFunctionSpec st_funcs[] = {
		JS_FN("end", js_cocos2dx_SimpleAudioEngine_end, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FN("getInstance", js_cocos2dx_SimpleAudioEngine_sharedEngine, 0, JSPROP_PERMANENT | JSPROP_SHARED),
		JS_FS_END
	};

	js_cocos2dx_SimpleAudioEngine_prototype = JS_InitClass(
		cx, global,
		NULL, // parent proto
		js_cocos2dx_SimpleAudioEngine_class,
		empty_constructor, 0,
		properties,
		funcs,
		NULL, // no static properties
		st_funcs);
	// make the class enumerable in the registered namespace
	JSBool found;
	JS_SetPropertyAttributes(cx, global, "AudioEngine", JSPROP_ENUMERATE | JSPROP_READONLY, &found);

	// add the proto and JSClass to the type->js info hash table
	TypeTest<CocosDenshion::SimpleAudioEngine> t;
	js_type_class_t *p;
	uint32_t typeId = t.s_id();
	HASH_FIND_INT(_js_global_type_ht, &typeId, p);
	if (!p) {
		p = (js_type_class_t *)malloc(sizeof(js_type_class_t));
		p->type = typeId;
		p->jsclass = js_cocos2dx_SimpleAudioEngine_class;
		p->proto = js_cocos2dx_SimpleAudioEngine_prototype;
		p->parentProto = NULL;
		HASH_ADD_INT(_js_global_type_ht, type, p);
	}
}

void register_all_cocos2dx(JSContext* cx, JSObject* obj) {
	// first, try to get the ns
	jsval nsval;
	JSObject *ns;
	JS_GetProperty(cx, obj, "cc", &nsval);
	if (nsval == JSVAL_VOID) {
		ns = JS_NewObject(cx, NULL, NULL, NULL);
		nsval = OBJECT_TO_JSVAL(ns);
		JS_SetProperty(cx, obj, "cc", &nsval);
	} else {
		JS_ValueToObject(cx, nsval, &ns);
	}
	obj = ns;

	js_register_cocos2dx_CCNode(cx, obj);
	js_register_cocos2dx_CCParticleSystem(cx, obj);
	js_register_cocos2dx_CCParticleSystemQuad(cx, obj);
	js_register_cocos2dx_CCParticleMeteor(cx, obj);
	js_register_cocos2dx_CCMenuItem(cx, obj);
	js_register_cocos2dx_CCMenuItemLabel(cx, obj);
	js_register_cocos2dx_CCMenuItemAtlasFont(cx, obj);
	js_register_cocos2dx_CCTMXObjectGroup(cx, obj);
	js_register_cocos2dx_CCAction(cx, obj);
	js_register_cocos2dx_CCFiniteTimeAction(cx, obj);
	js_register_cocos2dx_CCActionInterval(cx, obj);
	js_register_cocos2dx_CCMoveTo(cx, obj);
	js_register_cocos2dx_CCMoveBy(cx, obj);
	js_register_cocos2dx_SimpleAudioEngine(cx, obj);
	js_register_cocos2dx_CCSpriteBatchNode(cx, obj);
	js_register_cocos2dx_CCTMXLayer(cx, obj);
	js_register_cocos2dx_CCActionEase(cx, obj);
	js_register_cocos2dx_CCEaseElastic(cx, obj);
	js_register_cocos2dx_CCEaseElasticOut(cx, obj);
	js_register_cocos2dx_CCLayer(cx, obj);
	js_register_cocos2dx_CCLayerColor(cx, obj);
	js_register_cocos2dx_CCTargetedAction(cx, obj);
	js_register_cocos2dx_CCScene(cx, obj);
	js_register_cocos2dx_CCActionInstant(cx, obj);
	js_register_cocos2dx_CCFlipX(cx, obj);
	js_register_cocos2dx_CCFlipY(cx, obj);
	js_register_cocos2dx_CCParticleBatchNode(cx, obj);
	js_register_cocos2dx_CCJumpBy(cx, obj);
	js_register_cocos2dx_CCSprite(cx, obj);
	js_register_cocos2dx_CCLabelTTF(cx, obj);
	js_register_cocos2dx_CCProgressFromTo(cx, obj);
	js_register_cocos2dx_CCTransitionScene(cx, obj);
	js_register_cocos2dx_CCTransitionEaseScene(cx, obj);
	js_register_cocos2dx_CCTransitionFadeTR(cx, obj);
	js_register_cocos2dx_CCTransitionSceneOriented(cx, obj);
	js_register_cocos2dx_CCTransitionZoomFlipAngular(cx, obj);
	js_register_cocos2dx_CCScaleTo(cx, obj);
	js_register_cocos2dx_CCScaleBy(cx, obj);
	js_register_cocos2dx_CCTransitionPageTurn(cx, obj);
	js_register_cocos2dx_CCTransitionRotoZoom(cx, obj);
	js_register_cocos2dx_CCTransitionFadeDown(cx, obj);
	js_register_cocos2dx_CCDelayTime(cx, obj);
	js_register_cocos2dx_CCEaseRateAction(cx, obj);
	js_register_cocos2dx_CCEaseInOut(cx, obj);
	js_register_cocos2dx_CCTransitionSplitCols(cx, obj);
	js_register_cocos2dx_CCTransitionProgress(cx, obj);
	js_register_cocos2dx_CCCardinalSplineTo(cx, obj);
	js_register_cocos2dx_CCCardinalSplineBy(cx, obj);
	js_register_cocos2dx_CCCatmullRomBy(cx, obj);
	js_register_cocos2dx_CCTransitionFlipAngular(cx, obj);
	js_register_cocos2dx_CCHide(cx, obj);
	js_register_cocos2dx_CCGridAction(cx, obj);
	js_register_cocos2dx_CCTiledGrid3DAction(cx, obj);
	js_register_cocos2dx_CCFadeOutTRTiles(cx, obj);
	js_register_cocos2dx_CCFadeOutUpTiles(cx, obj);
	js_register_cocos2dx_CCFadeOutDownTiles(cx, obj);
	js_register_cocos2dx_CCEaseBackIn(cx, obj);
	js_register_cocos2dx_CCTexture2D(cx, obj);
	js_register_cocos2dx_CCJumpTiles3D(cx, obj);
	js_register_cocos2dx_CCTransitionFlipX(cx, obj);
	js_register_cocos2dx_CCMenuItemSprite(cx, obj);
	js_register_cocos2dx_CCMenuItemImage(cx, obj);
	js_register_cocos2dx_CCSequence(cx, obj);
	js_register_cocos2dx_CCTransitionCrossFade(cx, obj);
	js_register_cocos2dx_CCEaseElasticIn(cx, obj);
	js_register_cocos2dx_CCSpeed(cx, obj);
	js_register_cocos2dx_CCRotateTo(cx, obj);
	js_register_cocos2dx_CCActionCamera(cx, obj);
	js_register_cocos2dx_CCParticleGalaxy(cx, obj);
	js_register_cocos2dx_CCShow(cx, obj);
	js_register_cocos2dx_CCFadeOut(cx, obj);
	js_register_cocos2dx_CCAnimationCache(cx, obj);
	js_register_cocos2dx_CCRepeatForever(cx, obj);
	js_register_cocos2dx_CCFadeIn(cx, obj);
	js_register_cocos2dx_CCParticleSun(cx, obj);
	js_register_cocos2dx_CCTransitionProgressVertical(cx, obj);
	js_register_cocos2dx_CCAtlasNode(cx, obj);
	js_register_cocos2dx_CCTileMapAtlas(cx, obj);
	js_register_cocos2dx_CCPointArray(cx, obj);
	js_register_cocos2dx_CCParticleFlower(cx, obj);
	js_register_cocos2dx_CCTransitionShrinkGrow(cx, obj);
	js_register_cocos2dx_CCEaseExponentialInOut(cx, obj);
	js_register_cocos2dx_CCParticleRain(cx, obj);
	js_register_cocos2dx_CCTintBy(cx, obj);
	js_register_cocos2dx_CCMenuItemFont(cx, obj);
	js_register_cocos2dx_CCProgressTo(cx, obj);
	js_register_cocos2dx_CCSkewTo(cx, obj);
	js_register_cocos2dx_CCSkewBy(cx, obj);
	js_register_cocos2dx_CCParticleFireworks(cx, obj);
	js_register_cocos2dx_CCSpawn(cx, obj);
	js_register_cocos2dx_CCTMXTiledMap(cx, obj);
	js_register_cocos2dx_CCParticleExplosion(cx, obj);
	js_register_cocos2dx_CCToggleVisibility(cx, obj);
	js_register_cocos2dx_CCTransitionFade(cx, obj);
	js_register_cocos2dx_CCTransitionMoveInL(cx, obj);
	js_register_cocos2dx_CCTransitionMoveInT(cx, obj);
	js_register_cocos2dx_CCTransitionMoveInR(cx, obj);
	js_register_cocos2dx_CCPlace(cx, obj);
	js_register_cocos2dx_CCLabelBMFont(cx, obj);
	js_register_cocos2dx_CCTransitionMoveInB(cx, obj);
	js_register_cocos2dx_CCTransitionZoomFlipX(cx, obj);
	js_register_cocos2dx_CCMenuItemToggle(cx, obj);
	js_register_cocos2dx_CCLabelAtlas(cx, obj);
	js_register_cocos2dx_CCFollow(cx, obj);
	js_register_cocos2dx_CCOrbitCamera(cx, obj);
	js_register_cocos2dx_CCAnimationFrame(cx, obj);
	js_register_cocos2dx_CCParallaxNode(cx, obj);
	js_register_cocos2dx_CCTransitionProgressHorizontal(cx, obj);
	js_register_cocos2dx_CCRepeat(cx, obj);
	js_register_cocos2dx_CCParticleSnow(cx, obj);
	js_register_cocos2dx_CCTransitionFlipY(cx, obj);
	js_register_cocos2dx_CCGrid3DAction(cx, obj);
	js_register_cocos2dx_CCSpriteFrame(cx, obj);
	js_register_cocos2dx_CCTextureCache(cx, obj);
	js_register_cocos2dx_CCTransitionProgressRadialCW(cx, obj);
	js_register_cocos2dx_CCRotateBy(cx, obj);
	js_register_cocos2dx_CCFadeOutBLTiles(cx, obj);
	js_register_cocos2dx_CCScheduler(cx, obj);
	js_register_cocos2dx_CCEaseIn(cx, obj);
	js_register_cocos2dx_CCParticleFire(cx, obj);
	js_register_cocos2dx_CCTransitionProgressRadialCCW(cx, obj);
	js_register_cocos2dx_CCParticleSmoke(cx, obj);
	js_register_cocos2dx_CCTMXLayerInfo(cx, obj);
	js_register_cocos2dx_CCTransitionZoomFlipY(cx, obj);
	js_register_cocos2dx_CCTMXMapInfo(cx, obj);
	js_register_cocos2dx_CCTransitionSlideInL(cx, obj);
	js_register_cocos2dx_CCTransitionSlideInB(cx, obj);
	js_register_cocos2dx_CCEaseSineIn(cx, obj);
	js_register_cocos2dx_CCTransitionFadeBL(cx, obj);
	js_register_cocos2dx_CCAnimate(cx, obj);
	js_register_cocos2dx_CCBezierBy(cx, obj);
	js_register_cocos2dx_CCTransitionSplitRows(cx, obj);
	js_register_cocos2dx_CCEaseSineInOut(cx, obj);
	js_register_cocos2dx_CCShaky3D(cx, obj);
	js_register_cocos2dx_CCEaseOut(cx, obj);
	js_register_cocos2dx_CCTintTo(cx, obj);
	js_register_cocos2dx_CCTransitionTurnOffTiles(cx, obj);
	js_register_cocos2dx_CCTransitionSlideInT(cx, obj);
	js_register_cocos2dx_CCEaseExponentialIn(cx, obj);
	js_register_cocos2dx_CCTransitionSlideInR(cx, obj);
	js_register_cocos2dx_CCMenu(cx, obj);
	js_register_cocos2dx_CCCallFunc(cx, obj);
	js_register_cocos2dx_CCTransitionProgressInOut(cx, obj);
	js_register_cocos2dx_CCBlink(cx, obj);
	js_register_cocos2dx_CCEaseBounce(cx, obj);
	js_register_cocos2dx_CCEaseBounceIn(cx, obj);
	js_register_cocos2dx_CCDirector(cx, obj);
	js_register_cocos2dx_CCTimer(cx, obj);
	js_register_cocos2dx_CCProgressTimer(cx, obj);
	js_register_cocos2dx_CCEaseBounceInOut(cx, obj);
	js_register_cocos2dx_CCActionTween(cx, obj);
	js_register_cocos2dx_CCAnimation(cx, obj);
	js_register_cocos2dx_CCFlipX3D(cx, obj);
	js_register_cocos2dx_CCFlipY3D(cx, obj);
	js_register_cocos2dx_CCFadeTo(cx, obj);
	js_register_cocos2dx_CCEaseBackInOut(cx, obj);
	js_register_cocos2dx_CCEaseExponentialOut(cx, obj);
	js_register_cocos2dx_CCParticleSpiral(cx, obj);
	js_register_cocos2dx_CCEaseElasticInOut(cx, obj);
	js_register_cocos2dx_CCBezierTo(cx, obj);
	js_register_cocos2dx_CCEaseBounceOut(cx, obj);
	js_register_cocos2dx_CCWaves3D(cx, obj);
	js_register_cocos2dx_CCJumpTo(cx, obj);
	js_register_cocos2dx_CCEaseBackOut(cx, obj);
	js_register_cocos2dx_CCLayerGradient(cx, obj);
	js_register_cocos2dx_CCTransitionJumpZoom(cx, obj);
	js_register_cocos2dx_CCTouch(cx, obj);
	js_register_cocos2dx_CCTransitionFadeUp(cx, obj);
	js_register_cocos2dx_CCRenderTexture(cx, obj);
	js_register_cocos2dx_CCTMXTilesetInfo(cx, obj);
	js_register_cocos2dx_CCCatmullRomTo(cx, obj);
	js_register_cocos2dx_CCActionManager(cx, obj);
	js_register_cocos2dx_CCSet(cx, obj);
	js_register_cocos2dx_CCSpriteFrameCache(cx, obj);
	js_register_cocos2dx_CCEaseSineOut(cx, obj);
	js_register_cocos2dx_CCTransitionProgressOutIn(cx, obj);
}

